From 8920ed511f31116123fd3a608a94d2d5ce5b6995 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 1 Apr 2022 11:33:25 -0400 Subject: [PATCH 01/71] WIP: Test GCM run in CI --- .circleci/config.yml | 26 +++++++++++++------------- CHANGELOG.md | 1 + 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d29591f9f0e0..1d473ba33730 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,7 +46,7 @@ workflows: checkout_fixture: true mepodevelop: true checkout_mapl_branch: true - persist_workspace: false # Needs to be true to run fv3/gcm experiment, costs extra + persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra # Build GEOSldas - ci/build: @@ -78,15 +78,15 @@ workflows: mepodevelop: true develop_repos: "cmake GEOSana_GridComp" # GEOSadas needs some extra branches to work with mainline MAPL rebuild_procs: 8 - ################################################## - # - ci/run_fv3: # - # name: run-FV3-on-<< matrix.compiler >> # - # context: # - # - docker-hub-creds # - # matrix: # - # parameters: # - # compiler: [gfortran, ifort] # - # requires: # - # - build-GEOSgcm-on-<< matrix.compiler >> # - # repo: GEOSgcm # - ################################################## + + # Run gcm + - ci/run_gcm: + name: run-GCM-on-<< matrix.compiler >> + context: + - docker-hub-creds + matrix: + parameters: + compiler: [gfortran, ifort] + requires: + - build-GEOSgcm-on-<< matrix.compiler >> + repo: GEOSgcm diff --git a/CHANGELOG.md b/CHANGELOG.md index ebb81db07b3a..ad006ad0eb71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Cleaned up a bit of old CMake - Updated CircleCI config to use new orb `build` job + - Turned on GCM run test - Updated `components.yaml` to match GEOSgcm v10.22.1 - ESMA_env v3.13.0 - ESMA_cmake v3.12.0 From b8451eeec3c221024b510537dec669c271848601 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 1 Apr 2022 13:37:26 -0400 Subject: [PATCH 02/71] Change to trigger CI --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1d473ba33730..d6b08ab53015 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -79,7 +79,7 @@ workflows: develop_repos: "cmake GEOSana_GridComp" # GEOSadas needs some extra branches to work with mainline MAPL rebuild_procs: 8 - # Run gcm + # Run GCM - ci/run_gcm: name: run-GCM-on-<< matrix.compiler >> context: From e5ac1243e3cbe3ed9db1c895c6c9b96fcae58cc6 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 1 Apr 2022 13:44:13 -0400 Subject: [PATCH 03/71] Change to trigger CI. Try 2 --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d6b08ab53015..96da0c1d38d7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -79,7 +79,7 @@ workflows: develop_repos: "cmake GEOSana_GridComp" # GEOSadas needs some extra branches to work with mainline MAPL rebuild_procs: 8 - # Run GCM + # Run GCM (note uses bcs executor inside) - ci/run_gcm: name: run-GCM-on-<< matrix.compiler >> context: From 9d8e8b3146b4d784bf0c8c06802028145625d022 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 1 Apr 2022 14:48:15 -0400 Subject: [PATCH 04/71] One more comment change to trigger executor --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 96da0c1d38d7..395120a8fcba 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -79,7 +79,7 @@ workflows: develop_repos: "cmake GEOSana_GridComp" # GEOSadas needs some extra branches to work with mainline MAPL rebuild_procs: 8 - # Run GCM (note uses bcs executor inside) + # Run GCM (1 hour, no ExtData) - ci/run_gcm: name: run-GCM-on-<< matrix.compiler >> context: From 42d2a60a64bc0c95bc79c97b167b324d7ab9ae71 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 5 Apr 2022 10:34:53 -0400 Subject: [PATCH 05/71] Another comment change to trigger CI --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 395120a8fcba..da4ccf6e8b69 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,7 +46,7 @@ workflows: checkout_fixture: true mepodevelop: true checkout_mapl_branch: true - persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra + persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra, retained for one day # Build GEOSldas - ci/build: From fd5e415f4dc2faa2a6708bc908bbc0276ebc1c53 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 16 May 2022 14:57:11 -0400 Subject: [PATCH 06/71] Fix ADAS CI --- .circleci/config.yml | 14 +++++++++++++- CHANGELOG.md | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d29591f9f0e0..4c69b16b99b5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -76,7 +76,19 @@ workflows: fixture_branch: develop checkout_mapl_branch: true mepodevelop: true - develop_repos: "cmake GEOSana_GridComp" # GEOSadas needs some extra branches to work with mainline MAPL + # GEOSadas develop at the moment is in a weird state where MAPL develop + # requires a newer version of ESMA_cmake, but not *too* new a version of + # ESMA_cmake + checkout_branch_on_subrepo: + repo: GEOSadas + branch: v3.13.0 + subrepo: cmake + # Note: This isn't needed for CI, but it is on discover, so this is a + # way to remind me + checkout_branch_on_subrepo: + repo: GEOSadas + branch: v3.13.0 + subrepo: env rebuild_procs: 8 ################################################## # - ci/run_fv3: # diff --git a/CHANGELOG.md b/CHANGELOG.md index 428acf5dccd3..0182437094d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Update CI to work with latest GEOSadas `develop` + ### Added ### Changed From 282e883f6b63bb0010e37acc5c9bef2a250192f7 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 16 May 2022 15:15:13 -0400 Subject: [PATCH 07/71] Add loggers for generic stages --- CHANGELOG.md | 2 ++ generic/MAPL_Generic.F90 | 60 +++++++++++++++++++++++++--------------- 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 428acf5dccd3..ebb8c0a8b1c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Add debug loggers for start/stop during stages in MAPL_Generic + ### Changed ### Removed diff --git a/generic/MAPL_Generic.F90 b/generic/MAPL_Generic.F90 index 783556841f78..088cfc55742f 100644 --- a/generic/MAPL_Generic.F90 +++ b/generic/MAPL_Generic.F90 @@ -1707,7 +1707,10 @@ recursive subroutine MAPL_GenericWrapper ( GC, IMPORT, EXPORT, CLOCK, RC) procedure(ESMF_GridCompRun), pointer :: func_ptr => NULL() character(len=12), target :: timers_run(1) = & [character(len=12):: 'GenRunMine'] - character(len=12) :: sbrtn + character(len=:), allocatable :: sbrtn + + character(:), allocatable :: stage_description + class(Logger), pointer :: lgr !============================================================================= @@ -1726,6 +1729,8 @@ recursive subroutine MAPL_GenericWrapper ( GC, IMPORT, EXPORT, CLOCK, RC) _VERIFY(status) Iam = trim(comp_name) // trim(Iam) + lgr => logging%get_logger('MAPL.GENERIC') + call ESMF_VmGetCurrent(VM) ! Retrieve the pointer to the internal state. It comes in a wrapper. ! ------------------------------------------------------------------ @@ -1735,7 +1740,7 @@ recursive subroutine MAPL_GenericWrapper ( GC, IMPORT, EXPORT, CLOCK, RC) ! TIMERS on t_p => get_global_time_profiler() - call t_p%start(trim(state%compname),__RC__) + call t_p%start(trim(state%compname),_RC) phase_ = MAPL_MAX_PHASES+phase ! this is the "actual" phase, i.e. the one user registered @@ -1770,10 +1775,12 @@ recursive subroutine MAPL_GenericWrapper ( GC, IMPORT, EXPORT, CLOCK, RC) sbrtn = 'WriteRestart' endif MethodBlock + stage_description = sbrtn//' stage of the gridded component <'//trim(COMP_NAME)//'>' + ! TIMERS on if (method /= ESMF_METHOD_READRESTART .and. method /= ESMF_METHOD_WRITERESTART) then - call state%t_profiler%start(__RC__) - call state%t_profiler%start(trim(sbrtn),__RC__) + call state%t_profiler%start(_RC) + call state%t_profiler%start(trim(sbrtn),_RC) end if if (associated(timers)) then @@ -1784,34 +1791,32 @@ recursive subroutine MAPL_GenericWrapper ( GC, IMPORT, EXPORT, CLOCK, RC) ! Method itself ! ---------- -#ifdef DEBUG - IF (mapl_am_i_root(vm)) then - print *,'DBG: running ', sbrtn, ' phase ',phase,' of ',trim(comp_name) - end IF -#endif - + call lgr%debug('Started %a', stage_description) call func_ptr (GC, & importState=IMPORT, & exportState=EXPORT, & clock=CLOCK, PHASE=PHASE_, & - userRC=userRC, __RC__ ) + userRC=userRC, _RC ) _VERIFY(userRC) + _ASSERT(userRC==ESMF_SUCCESS .and. STATUS==ESMF_SUCCESS,'Error during '//stage_description//' for <'//trim(COMP_NAME)//'>') + call lgr%debug('Finished %a', stage_description) + ! TIMERS off if (associated(timers)) then do i = size(timers),1,-1 - call MAPL_TimerOff (STATE,timers(i),__RC__) + call MAPL_TimerOff (STATE,timers(i),_RC) end do end if if (method /= ESMF_METHOD_FINALIZE) then if (method /= ESMF_METHOD_WRITERESTART .and. & method /= ESMF_METHOD_READRESTART) then - call state%t_profiler%stop(trim(sbrtn),__RC__) - call state%t_profiler%stop(__RC__) + call state%t_profiler%stop(trim(sbrtn),_RC) + call state%t_profiler%stop(_RC) end if - call t_p%stop(trim(state%compname),__RC__) + call t_p%stop(trim(state%compname),_RC) endif @@ -4553,6 +4558,9 @@ recursive integer function AddChildFromMeta(META, NAME, GRID, & class(BaseProfiler), pointer :: t_p integer :: userRC + character(:), allocatable :: stage_description + class(Logger), pointer :: lgr + if (.not.allocated(META%GCNameList)) then ! this is the first child to be added allocate(META%GCNameList(0), __STAT__) @@ -4561,19 +4569,25 @@ recursive integer function AddChildFromMeta(META, NAME, GRID, & I = META%get_num_children() + 1 AddChildFromMeta = I - call AddChild_preamble(meta, I, name, grid=grid, configfile=configfile, parentGC=parentgc, petList=petlist, child_meta=child_meta, __RC__) + call AddChild_preamble(meta, I, name, grid=grid, configfile=configfile, parentGC=parentgc, petList=petlist, child_meta=child_meta, _RC) + + stage_description = 'setServices() of the gridded component <'//trim(name)//'>' + lgr => logging%get_logger('MAPL.GENERIC') + t_p => get_global_time_profiler() - call t_p%start(trim(NAME),__RC__) - call child_meta%t_profiler%start(__RC__) - call child_meta%t_profiler%start('SetService',__RC__) + call t_p%start(trim(NAME),_RC) + call child_meta%t_profiler%start(_RC) + call child_meta%t_profiler%start('SetService',_RC) !!$ gridcomp => META%GET_CHILD_GRIDCOMP(I) - call ESMF_GridCompSetServices ( child_meta%gridcomp, SS, userRC=userRC, __RC__ ) + call lgr%debug("Started %a", stage_description) + call ESMF_GridCompSetServices ( child_meta%gridcomp, SS, userRC=userRC, _RC ) _VERIFY(userRC) + call lgr%debug("Finished %a", stage_description) - call child_meta%t_profiler%stop('SetService',__RC__) - call child_meta%t_profiler%stop(__RC__) - call t_p%stop(trim(NAME),__RC__) + call child_meta%t_profiler%stop('SetService',_RC) + call child_meta%t_profiler%stop(_RC) + call t_p%stop(trim(NAME),_RC) _VERIFY(status) From 26e1c9900d28d47f60b8574d3b50521da71b2cc2 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 16 May 2022 15:34:19 -0400 Subject: [PATCH 08/71] Use special branch of adas --- .circleci/config.yml | 15 +-------------- CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4c69b16b99b5..778380faedea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -73,22 +73,9 @@ workflows: resource_class: xlarge repo: GEOSadas checkout_fixture: true - fixture_branch: develop + fixture_branch: feature/mathomp4/mapldevelop checkout_mapl_branch: true mepodevelop: true - # GEOSadas develop at the moment is in a weird state where MAPL develop - # requires a newer version of ESMA_cmake, but not *too* new a version of - # ESMA_cmake - checkout_branch_on_subrepo: - repo: GEOSadas - branch: v3.13.0 - subrepo: cmake - # Note: This isn't needed for CI, but it is on discover, so this is a - # way to remind me - checkout_branch_on_subrepo: - repo: GEOSadas - branch: v3.13.0 - subrepo: env rebuild_procs: 8 ################################################## # - ci/run_fv3: # diff --git a/CHANGELOG.md b/CHANGELOG.md index 0182437094d0..db58f7709180 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed -- Update CI to work with latest GEOSadas `develop` +- Update CI to work with latest GEOSadas `develop` (Uses a special branch of GEOSadas) ### Added From de2024d70083f9572f11ee926d26c9817b6ec994 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 16 May 2022 15:34:54 -0400 Subject: [PATCH 09/71] Add comment --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 778380faedea..6a58ad67e8d5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -73,6 +73,8 @@ workflows: resource_class: xlarge repo: GEOSadas checkout_fixture: true + # This branch on GEOSadas will be used to track subrepos needed + # for GEOSadas + MAPL develop much like how we do with MAPL 3 fixture_branch: feature/mathomp4/mapldevelop checkout_mapl_branch: true mepodevelop: true From c88a5a75da515735a7671618a32748d02c061468 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 16 May 2022 15:50:19 -0400 Subject: [PATCH 10/71] Don't do mepodevelop for adas --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6a58ad67e8d5..96ea44025596 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -77,7 +77,7 @@ workflows: # for GEOSadas + MAPL develop much like how we do with MAPL 3 fixture_branch: feature/mathomp4/mapldevelop checkout_mapl_branch: true - mepodevelop: true + mepodevelop: false rebuild_procs: 8 ################################################## # - ci/run_fv3: # From fe2f88f75fb483c24f80e65ac923974c91e3e02e Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 17 May 2022 07:24:25 -0400 Subject: [PATCH 11/71] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a60a888e08d1..f2a8eaf601b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Add debug loggers for start/stop during stages in MAPL_Generic +- Enable GCM run test in CircleCI ### Changed @@ -57,7 +58,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Cleaned up a bit of old CMake - Updated CircleCI config to use new orb `build` job - - Turned on GCM run test - Updated `components.yaml` to match GEOSgcm v10.22.1 - ESMA_env v3.13.0 - ESMA_cmake v3.12.0 From 4fb3b9e871c7bdd4281d1da5874da7a217187825 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Wed, 11 May 2022 10:42:03 -0400 Subject: [PATCH 12/71] Expand error handling in FileMetadataUtilities to print filename Signed-off-by: Lizzie Lundgren --- base/FileMetadataUtilities.F90 | 74 ++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 26 deletions(-) diff --git a/base/FileMetadataUtilities.F90 b/base/FileMetadataUtilities.F90 index f6726730615a..6a18cc76ccbb 100644 --- a/base/FileMetadataUtilities.F90 +++ b/base/FileMetadataUtilities.F90 @@ -61,10 +61,12 @@ function var_get_missing_value(this,var_name,rc) result(missing_value) integer, optional, intent(out) :: rc integer :: status + character(len=ESMF_MAXSTR) :: fname type(Variable), pointer :: var + fname = get_file_name(this,_RC) var => this%get_variable(var_name,_RC) - _ASSERT(associated(var),"no variable named "//var_name//" in file") + _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) ! check _FillValue, we could do more, not sure what to do here like also check for missing_value ... if (this%var_has_attr(var_name,"_FillValue")) then missing_value = this%get_var_attr_real32(var_name,"_FillValue",_RC) @@ -79,10 +81,12 @@ logical function var_has_missing_value(this,var_name,rc) integer, optional, intent(out) :: rc integer :: status + character(len=ESMF_MAXSTR) :: fname type(Variable), pointer :: var + fname = get_file_name(this,_RC) var => this%get_variable(var_name,_RC) - _ASSERT(associated(var),"no variable named "//var_name//" in file") + _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) var_has_missing_value = var%is_attribute_present("_FillValue") _RETURN(_SUCCESS) @@ -95,10 +99,12 @@ logical function var_has_attr(this,var_name,attr_name,rc) integer, optional, intent(out) :: rc integer :: status + character(len=ESMF_MAXSTR) :: fname type(Variable), pointer :: var + fname = get_file_name(this,_RC) var => this%get_variable(var_name,_RC) - _ASSERT(associated(var),"no variable named "//var_name//" in file") + _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) var_has_attr = var%is_attribute_present(attr_name) _RETURN(_SUCCESS) end function var_has_attr @@ -112,21 +118,23 @@ function get_var_attr_real32(this,var_name,attr_name,rc) result(attr_real32) real(REAL32) :: tmp(1) integer :: status + character(len=ESMF_MAXSTR) :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val(:) + fname = get_file_name(this,_RC) var => this%get_variable(var_name,_RC) - _ASSERT(associated(var),"no variable named "//var_name//" in file") + _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) - _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in file") + _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in "//fname) attr_val => attr%get_values() select type(attr_val) type is(real(kind=REAL32)) tmp = attr_val attr_real32 = tmp(1) class default - _FAIL('unsupport subclass for units') + _FAIL('unsupported subclass (not real32) for units of attribute named '//attr_name//' in '//var_name//' in '//fname) end select _RETURN(_SUCCESS) @@ -141,21 +149,23 @@ function get_var_attr_real64(this,var_name,attr_name,rc) result(attr_real64) real(REAL64) :: tmp(1) integer :: status + character(len=ESMF_MAXSTR) :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val(:) + fname = get_file_name(this,_RC) var => this%get_variable(var_name,_RC) - _ASSERT(associated(var),"no variable named "//var_name//" in file") + _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) - _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in file") + _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in "//fname) attr_val => attr%get_values() select type(attr_val) type is(real(kind=REAL64)) tmp = attr_val attr_real64 = tmp(1) class default - _FAIL('unsupport subclass for units') + _FAIL('unsupported subclass (not real64) for units of attribute named '//attr_name//' in '//var_name//' in '//fname) end select _RETURN(_SUCCESS) @@ -170,21 +180,23 @@ function get_var_attr_int32(this,var_name,attr_name,rc) result(attr_int32) integer(INT32) :: tmp(1) integer :: status + character(len=ESMF_MAXSTR) :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val(:) + fname = get_file_name(this,_RC) var => this%get_variable(var_name,_RC) - _ASSERT(associated(var),"no variable named "//var_name//" in file") + _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) - _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in file") + _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in "//fname) attr_val => attr%get_values() select type(attr_val) type is(integer(kind=INT32)) tmp = attr_val attr_int32 = tmp(1) class default - _FAIL('unsupport subclass for units') + _FAIL('unsupported subclass (not int32) for units of attribute named '//attr_name//' in '//var_name//' in '//fname) end select _RETURN(_SUCCESS) @@ -199,21 +211,23 @@ function get_var_attr_int64(this,var_name,attr_name,rc) result(attr_int64) integer(INT64) :: tmp(1) integer :: status + character(len=ESMF_MAXSTR) :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val(:) + fname = get_file_name(this,_RC) var => this%get_variable(var_name,_RC) - _ASSERT(associated(var),"no variable named "//var_name//" in file") + _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) - _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in file") + _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in "//fname) attr_val => attr%get_values() select type(attr_val) type is(integer(kind=INT64)) tmp = attr_val attr_int64 = tmp(1) class default - _FAIL('unsupport subclass for units') + _FAIL('unsupported subclass (not int64) for units of attribute named '//attr_name//' in '//var_name//' in '//fname) end select _RETURN(_SUCCESS) @@ -227,20 +241,22 @@ function get_var_attr_string(this,var_name,attr_name,rc) result(attr_string) integer, optional, intent(out) :: rc integer :: status + character(len=ESMF_MAXSTR) :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val + fname = get_file_name(this,_RC) var => this%get_variable(var_name,_RC) - _ASSERT(associated(var),"no variable named "//var_name//" in file") + _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) - _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in file") + _ASSERT(associated(attr),"no attribute named "//attr_name//" in "//var_name//" in "//fname) attr_val => attr%get_value() select type(attr_val) type is(character(*)) attr_string = attr_val class default - _FAIL('unsupport subclass for units') + _FAIL('unsupported subclass (not string) for units of attribute named '//attr_name//' in '//var_name//' in '//fname) end select _RETURN(_SUCCESS) @@ -261,6 +277,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour, integer, optional, intent(out) :: rc integer :: status + character(len=ESMF_MAXSTR) :: fname class(CoordinateVariable), pointer :: var type(Attribute), pointer :: attr class(*), pointer :: pTimeUnits @@ -278,6 +295,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour, real(REAL64), allocatable :: tr_r64(:) type(ESMF_TimeInterval) :: tint + fname = get_file_name(this,_RC) var => this%get_coordinate_variable('time',rc=status) _VERIFY(status) attr => var%get_attribute('units') @@ -356,7 +374,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour, endif endif class default - _FAIL("Time unit must be character") + _FAIL("Time unit must be character in "//fname) end select call ESMF_TimeSet(unmodStartTime,yy=year,mm=month,dd=day,h=hour,m=min,s=sec,rc=status) _VERIFY(status) @@ -366,7 +384,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour, allocate(tr_r64(tsize)) allocate(tvec(tsize)) ptr => var%get_coordinate_data() - _ASSERT(associated(ptr),"time variable coordinate data not found") + _ASSERT(associated(ptr),"time variable coordinate data not found in "//fname) select type (ptr) type is (real(kind=REAL64)) tr_r64=ptr @@ -377,7 +395,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour, type is (integer(kind=INT32)) tr_r64=ptr class default - _FAIL("unsupported time variable type") + _FAIL("unsupported time variable type in "//fname) end select do i=1,tsize select case (trim(tUnits)) @@ -398,7 +416,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour, _VERIFY(status) tvec(i)=unmodStartTime+tint case default - _FAIL("unsupported time unit") + _FAIL("unsupported time unit in "//fname) end select enddo @@ -441,6 +459,7 @@ function get_variable_attribute(this,var_name,attr_name,rc) result(units) character(len=*), intent(in) :: attr_name integer, optional, intent(out) :: rc + character(len=ESMF_MAXSTR) :: fname character(len=:), pointer :: units type(Attribute), pointer :: attr => null() class(Variable), pointer :: var => null() @@ -448,6 +467,7 @@ function get_variable_attribute(this,var_name,attr_name,rc) result(units) logical :: isPresent integer :: status + fname = get_file_name(this,_RC) var => this%get_variable(var_name,rc=status) _VERIFY(status) isPresent = var%is_attribute_present(trim(attr_name)) @@ -458,7 +478,7 @@ function get_variable_attribute(this,var_name,attr_name,rc) result(units) type is (character(*)) units => vunits class default - _FAIL('units must be string') + _FAIL('units must be string for '//var_name//' in '//fname) end select else units => null() @@ -476,12 +496,14 @@ subroutine get_coordinate_info(this,coordinate_name,coordSize,coordUnits,coords, integer, optional, intent(out) :: rc integer :: status + character(len=ESMF_MAXSTR) :: fname class(CoordinateVariable), pointer :: var type(Attribute), pointer :: attr character(len=:), pointer :: vdim class(*), pointer :: coordUnitPtr class(*), pointer :: ptr(:) + fname = get_file_name(this,_RC) var => this%get_coordinate_variable(trim(coordinate_name),rc=status) _VERIFY(status) @@ -497,13 +519,13 @@ subroutine get_coordinate_info(this,coordinate_name,coordSize,coordUnits,coords, type is (character(*)) coordUnits = trim(coordUnitPtr) class default - _FAIL('units must be string') + _FAIL('coordinate units must be string in '//fname) end select end if if (present(coords)) then ptr => var%get_coordinate_data() - _ASSERT(associated(ptr),"coord variable coordinate data not found") + _ASSERT(associated(ptr),"coord variable coordinate data not found in "//fname) select type (ptr) type is (real(kind=REAL64)) coords=ptr @@ -514,7 +536,7 @@ subroutine get_coordinate_info(this,coordinate_name,coordSize,coordUnits,coords, type is (integer(kind=INT32)) coords=ptr class default - _FAIL("unsupported coordel variable type") + _FAIL("unsupported coordinate variable type in "//fname) end select end if _RETURN(_SUCCESS) From b037c3cb1beb766ebcbee572b8be29eb3d26fced Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Wed, 11 May 2022 10:33:15 -0400 Subject: [PATCH 13/71] Allow double precision data when retrieving single precision attributes This update prevents run fail when retrieving _FillValue from import files containing double precision data. Signed-off-by: Lizzie Lundgren --- base/FileMetadataUtilities.F90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/base/FileMetadataUtilities.F90 b/base/FileMetadataUtilities.F90 index 6a18cc76ccbb..70f98b7cd31c 100644 --- a/base/FileMetadataUtilities.F90 +++ b/base/FileMetadataUtilities.F90 @@ -117,6 +117,7 @@ function get_var_attr_real32(this,var_name,attr_name,rc) result(attr_real32) integer, optional, intent(out) :: rc real(REAL32) :: tmp(1) + real(REAL64) :: tmpd(1) integer :: status character(len=ESMF_MAXSTR) :: fname type(Attribute), pointer :: attr @@ -133,6 +134,9 @@ function get_var_attr_real32(this,var_name,attr_name,rc) result(attr_real32) type is(real(kind=REAL32)) tmp = attr_val attr_real32 = tmp(1) + type is(real(kind=REAL64)) + tmpd = attr_val + attr_real32 = REAL(tmpd(1)) class default _FAIL('unsupported subclass (not real32) for units of attribute named '//attr_name//' in '//var_name//' in '//fname) end select From bec668082cd14b1821ed5ee78c2079baec15ea56 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Wed, 11 May 2022 11:25:01 -0400 Subject: [PATCH 14/71] Update Changelog Signed-off-by: Lizzie Lundgren --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3ab4a9e9dea..52fdcaddbfcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,9 +14,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Add debug loggers for start/stop during stages in MAPL_Generic +- Handling for double precision input when retrieving single precision attributes ### Changed +- Modified error messages in FileMetadataUtilities to be unique and print filename + ### Removed ### Deprecated From e484e71d728c5e1da6ff991d0d0bf80c32c78864 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Mon, 16 May 2022 11:03:59 -0400 Subject: [PATCH 15/71] Update usage of fname Signed-off-by: Lizzie Lundgren --- base/FileMetadataUtilities.F90 | 45 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/base/FileMetadataUtilities.F90 b/base/FileMetadataUtilities.F90 index 70f98b7cd31c..695bffe89e5b 100644 --- a/base/FileMetadataUtilities.F90 +++ b/base/FileMetadataUtilities.F90 @@ -61,10 +61,10 @@ function var_get_missing_value(this,var_name,rc) result(missing_value) integer, optional, intent(out) :: rc integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname type(Variable), pointer :: var - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) ! check _FillValue, we could do more, not sure what to do here like also check for missing_value ... @@ -81,10 +81,10 @@ logical function var_has_missing_value(this,var_name,rc) integer, optional, intent(out) :: rc integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname type(Variable), pointer :: var - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) var_has_missing_value = var%is_attribute_present("_FillValue") @@ -99,10 +99,10 @@ logical function var_has_attr(this,var_name,attr_name,rc) integer, optional, intent(out) :: rc integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname type(Variable), pointer :: var - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) var_has_attr = var%is_attribute_present(attr_name) @@ -119,12 +119,12 @@ function get_var_attr_real32(this,var_name,attr_name,rc) result(attr_real32) real(REAL32) :: tmp(1) real(REAL64) :: tmpd(1) integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val(:) - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) @@ -153,12 +153,12 @@ function get_var_attr_real64(this,var_name,attr_name,rc) result(attr_real64) real(REAL64) :: tmp(1) integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val(:) - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) @@ -184,12 +184,12 @@ function get_var_attr_int32(this,var_name,attr_name,rc) result(attr_int32) integer(INT32) :: tmp(1) integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val(:) - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) @@ -215,12 +215,12 @@ function get_var_attr_int64(this,var_name,attr_name,rc) result(attr_int64) integer(INT64) :: tmp(1) integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val(:) - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) @@ -245,12 +245,12 @@ function get_var_attr_string(this,var_name,attr_name,rc) result(attr_string) integer, optional, intent(out) :: rc integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname type(Attribute), pointer :: attr type(Variable), pointer :: var class(*), pointer :: attr_val - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) attr => var%get_attribute(attr_name,_RC) @@ -281,7 +281,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour, integer, optional, intent(out) :: rc integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname class(CoordinateVariable), pointer :: var type(Attribute), pointer :: attr class(*), pointer :: pTimeUnits @@ -299,7 +299,7 @@ subroutine get_time_info(this,startTime,startyear,startmonth,startday,starthour, real(REAL64), allocatable :: tr_r64(:) type(ESMF_TimeInterval) :: tint - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_coordinate_variable('time',rc=status) _VERIFY(status) attr => var%get_attribute('units') @@ -462,8 +462,7 @@ function get_variable_attribute(this,var_name,attr_name,rc) result(units) character(len=*), intent(in) :: var_name character(len=*), intent(in) :: attr_name integer, optional, intent(out) :: rc - - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname character(len=:), pointer :: units type(Attribute), pointer :: attr => null() class(Variable), pointer :: var => null() @@ -471,7 +470,7 @@ function get_variable_attribute(this,var_name,attr_name,rc) result(units) logical :: isPresent integer :: status - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_variable(var_name,rc=status) _VERIFY(status) isPresent = var%is_attribute_present(trim(attr_name)) @@ -500,14 +499,14 @@ subroutine get_coordinate_info(this,coordinate_name,coordSize,coordUnits,coords, integer, optional, intent(out) :: rc integer :: status - character(len=ESMF_MAXSTR) :: fname + character(:), allocatable :: fname class(CoordinateVariable), pointer :: var type(Attribute), pointer :: attr character(len=:), pointer :: vdim class(*), pointer :: coordUnitPtr class(*), pointer :: ptr(:) - fname = get_file_name(this,_RC) + fname = this%get_file_name(_RC) var => this%get_coordinate_variable(trim(coordinate_name),rc=status) _VERIFY(status) From e90cd763e13a91385ad17bc152c268270c488e78 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 17 May 2022 14:51:46 -0400 Subject: [PATCH 16/71] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19ab265e5973..b324f0f6e205 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add debug loggers for start/stop during stages in MAPL_Generic - Handling for double precision input when retrieving single precision attributes -- Enable GCM run test in CircleCI +- Enable GCM run test in CircleCI (1-hour, no ExtData) ### Changed From e114377f8814e53ff206061f941b768c261339a1 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 17 May 2022 14:54:31 -0400 Subject: [PATCH 17/71] if a field makes it to ExtData. Go through all components and if that field is in its import state, make it MAPL_RestartSkip --- CHANGELOG.md | 2 ++ generic/MAPL_Generic.F90 | 44 ++++++++++++++++++++++++++++++ gridcomps/Cap/MAPL_CapGridComp.F90 | 6 ++-- 3 files changed, 50 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 428acf5dccd3..5ec857e7742a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Updated MAPL_CapGridComp to mark fields going to ExtData to not be checkpointed by components + ### Changed ### Removed diff --git a/generic/MAPL_Generic.F90 b/generic/MAPL_Generic.F90 index 783556841f78..a076986330c4 100644 --- a/generic/MAPL_Generic.F90 +++ b/generic/MAPL_Generic.F90 @@ -222,6 +222,7 @@ module MAPL_GenericMod public MAPL_GenericStateSave public MAPL_GenericStateRestore public MAPL_RootGcRetrieve + public MAPL_AddAttributeToFields !BOP ! !PUBLIC TYPES: @@ -341,6 +342,10 @@ module MAPL_GenericMod module procedure MAPL_GetLogger_meta end interface MAPL_GetLogger + interface MAPL_AddAttributeToFields + module procedure MAPL_AddI4AttributeToFields + end interface + ! ======================================================================= @@ -11320,4 +11325,43 @@ subroutine warn_empty(string, MPL, rc) _RETURN(ESMF_SUCCESS) end subroutine warn_empty + recursive subroutine MAPL_AddI4AttributeToFields(gc,field_name,att_name,att_val,rc) + type(ESMF_GridComp), pointer, intent(inout) :: gc + character(len=*), intent(in) :: field_name + character(len=*), intent(in) :: att_name + integer(int32), intent(in) :: att_val + integer, optional, intent(out) :: rc + + integer :: nc,i,status + type(MAPL_MetaComp), pointer :: state + type(ESMF_GridComp), pointer :: child_gc + type(ESMF_Field) :: field + type(ESMF_StateItem_Flag) :: item_type + type(ESMF_TypeKind_Flag) :: item_kind + integer :: item_count + logical :: is_present + + call MAPL_GetObjectFromGC(gc,state,_RC) + call ESMF_StateGet(state%import_state,field_name,item_type,_RC) + if (item_type == ESMF_STATEITEM_FIELD) then + call ESMF_StateGet(state%import_state,field_name,field,_RC) + call ESMF_AttributeGet(field,name=att_name,isPresent=is_Present,_RC) + if (is_present) then + call ESMF_AttributeGet(field,name=att_name,typekind=item_kind,itemCount=item_count,_RC) + _ASSERT(item_kind == ESMF_TYPEKIND_I4,"attribute "//att_name//" in "//field_name//" is not I4") + _ASSERT(item_count==1,"attribute "//att_name//" in "//field_name//" is not a scalar") + end if + call ESMF_AttributeSet(field,name=att_name,value=att_val,_RC) + end if + nc = state%get_num_children() + if (nc > 0) then + do i=1,nc + child_gc => state%get_child_gridcomp(i) + call MAPL_AddI4AttributeToFields(child_gc,field_name,att_name,att_val,_RC) + enddo + end if + + _RETURN(_SUCCESS) + end subroutine MAPL_AddI4AttributeToFields + end module MAPL_GenericMod diff --git a/gridcomps/Cap/MAPL_CapGridComp.F90 b/gridcomps/Cap/MAPL_CapGridComp.F90 index 2b8b92f67530..e072574f1609 100644 --- a/gridcomps/Cap/MAPL_CapGridComp.F90 +++ b/gridcomps/Cap/MAPL_CapGridComp.F90 @@ -631,7 +631,7 @@ subroutine initialize_gc(gc, import_state, export_state, clock, rc) call cap%initialize_history(rc=status) _VERIFY(status) - call cap%initialize_extdata(rc=status) + call cap%initialize_extdata(root_gc,rc=status) _VERIFY(status) ! Finally check is this is a regular replay @@ -690,8 +690,9 @@ subroutine initialize_history(cap, rc) end subroutine initialize_history - subroutine initialize_extdata(cap , rc) + subroutine initialize_extdata(cap , root_gc, rc) class(MAPL_CapGridComp), intent(inout) :: cap + type (ESMF_GridComp), intent(inout), pointer :: root_gc integer, optional, intent(out) :: rc integer :: item_count, status type (ESMF_StateItem_Flag), pointer :: item_types(:) @@ -758,6 +759,7 @@ subroutine initialize_extdata(cap , rc) if (item_types(i) == ESMF_StateItem_Field) then call ESMF_StateGet(root_imports, item_names(i), field, rc = status) _VERIFY(status) + call MAPL_AddAttributeToFields(root_gc,trim(item_names(i)),'RESTART',MAPL_RestartSkip,_RC) call MAPL_StateAdd(state, field, rc = status) _VERIFY(status) else if (item_types(i) == ESMF_StateItem_FieldBundle) then From 61184cec72293281300d328488211925a6ab0326 Mon Sep 17 00:00:00 2001 From: Ben Auer Date: Wed, 18 May 2022 10:55:09 -0400 Subject: [PATCH 18/71] Update generic/MAPL_Generic.F90 Co-authored-by: Tom Clune --- generic/MAPL_Generic.F90 | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/generic/MAPL_Generic.F90 b/generic/MAPL_Generic.F90 index d9fe7b8c7852..40c5dc82ae26 100644 --- a/generic/MAPL_Generic.F90 +++ b/generic/MAPL_Generic.F90 @@ -11368,12 +11368,10 @@ recursive subroutine MAPL_AddI4AttributeToFields(gc,field_name,att_name,att_val, call ESMF_AttributeSet(field,name=att_name,value=att_val,_RC) end if nc = state%get_num_children() - if (nc > 0) then - do i=1,nc - child_gc => state%get_child_gridcomp(i) - call MAPL_AddI4AttributeToFields(child_gc,field_name,att_name,att_val,_RC) - enddo - end if + do i=1,nc + child_gc => state%get_child_gridcomp(i) + call MAPL_AddI4AttributeToFields(child_gc,field_name,att_name,att_val,_RC) + enddo _RETURN(_SUCCESS) end subroutine MAPL_AddI4AttributeToFields From 338f3d19f98e5e2325fa0331e89f09d0d436b754 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 18 May 2022 10:56:09 -0400 Subject: [PATCH 19/71] better naming ... --- generic/MAPL_Generic.F90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/generic/MAPL_Generic.F90 b/generic/MAPL_Generic.F90 index 40c5dc82ae26..a712c2485bc9 100644 --- a/generic/MAPL_Generic.F90 +++ b/generic/MAPL_Generic.F90 @@ -343,7 +343,7 @@ module MAPL_GenericMod end interface MAPL_GetLogger interface MAPL_AddAttributeToFields - module procedure MAPL_AddI4AttributeToFields + module procedure MAPL_AddAttributeToFields_I4 end interface @@ -11339,7 +11339,7 @@ subroutine warn_empty(string, MPL, rc) _RETURN(ESMF_SUCCESS) end subroutine warn_empty - recursive subroutine MAPL_AddI4AttributeToFields(gc,field_name,att_name,att_val,rc) + recursive subroutine MAPL_AddAttributeToFields_I4(gc,field_name,att_name,att_val,rc) type(ESMF_GridComp), pointer, intent(inout) :: gc character(len=*), intent(in) :: field_name character(len=*), intent(in) :: att_name @@ -11370,10 +11370,10 @@ recursive subroutine MAPL_AddI4AttributeToFields(gc,field_name,att_name,att_val, nc = state%get_num_children() do i=1,nc child_gc => state%get_child_gridcomp(i) - call MAPL_AddI4AttributeToFields(child_gc,field_name,att_name,att_val,_RC) + call MAPL_AddAttributeToFields_I4(child_gc,field_name,att_name,att_val,_RC) enddo _RETURN(_SUCCESS) - end subroutine MAPL_AddI4AttributeToFields + end subroutine MAPL_AddAttributeToFields_I4 end module MAPL_GenericMod From 8b5207459b9eb789944193ea7ffe328c1cadf2bb Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 25 May 2022 13:40:23 -0400 Subject: [PATCH 20/71] allow monotonic dynamic masking and update history kewords --- base/MAPL_EsmfRegridder.F90 | 61 +++++++++++++++++++- base/RegridMethods.F90 | 4 ++ gridcomps/History/MAPL_HistoryCollection.F90 | 2 +- gridcomps/History/MAPL_HistoryGridComp.F90 | 29 +++++++--- 4 files changed, 85 insertions(+), 11 deletions(-) diff --git a/base/MAPL_EsmfRegridder.F90 b/base/MAPL_EsmfRegridder.F90 index 9749a184acdc..8ebdab4767bb 100644 --- a/base/MAPL_EsmfRegridder.F90 +++ b/base/MAPL_EsmfRegridder.F90 @@ -83,8 +83,10 @@ logical function supports(spec, unusable, rc) supports = any(spec%regrid_method == & [ & REGRID_METHOD_BILINEAR, & + REGRID_METHOD_BILINEAR_MONOTONIC, & REGRID_METHOD_BILINEAR_ROTATE, & REGRID_METHOD_CONSERVE, & + REGRID_METHOD_CONSERVE_MONOTONIC, & REGRID_METHOD_VOTE, & REGRID_METHOD_FRACTION, & REGRID_METHOD_CONSERVE_2ND, & @@ -1172,7 +1174,56 @@ subroutine simpleDynMaskProcV(dynamicMaskList, dynamicSrcMaskValue, & rc = ESMF_SUCCESS end subroutine simpleDynMaskProcV + subroutine monotonicDynMaskProcV(dynamicMaskList, dynamicSrcMaskValue, & + dynamicDstMaskValue, rc) + type(ESMF_DynamicMaskElementR4R8R4V), pointer :: dynamicMaskList(:) + real(ESMF_KIND_R4), intent(in), optional :: dynamicSrcMaskValue + real(ESMF_KIND_R4), intent(in), optional :: dynamicDstMaskValue + integer, intent(out) :: rc + integer :: i, j, k, n + real(ESMF_KIND_R4), allocatable :: renorm(:),max_input(:),min_input(:) + + _UNUSED_DUMMY(dynamicDstMaskValue) + + if (associated(dynamicMaskList)) then + n = size(dynamicMaskList(1)%srcElement(1)%ptr) + allocate(renorm(n),max_input(n),min_input(n)) + do i=1, size(dynamicMaskList) + dynamicMaskList(i)%dstElement = 0.0 ! set to zero + + renorm = 0.d0 ! reset + max_input = -huge(0.0) + min_input = huge(0.0) + do j=1, size(dynamicMaskList(i)%factor) + do k = 1, size(dynamicMaskList(i)%srcElement(j)%ptr) + if (.not. & + match(dynamicSrcMaskValue,dynamicMaskList(i)%srcElement(j)%ptr(k))) then + dynamicMaskList(i)%dstElement(k) = dynamicMaskList(i)%dstElement(k) & + + dynamicMaskList(i)%factor(j) & + * dynamicMaskList(i)%srcElement(j)%ptr(k) + renorm(k) = renorm(k) + dynamicMaskList(i)%factor(j) + if (dynamicMaskList(i)%srcElement(j)%ptr(k) > max_input(k)) max_input(k) = dynamicMaskList(i)%srcElement(j)%ptr(k) + if (dynamicMaskList(i)%srcElement(j)%ptr(k) < min_input(k)) min_input(k) = dynamicMaskList(i)%srcElement(j)%ptr(k) + endif + end do + end do + where (renorm > 0.d0) + dynamicMaskList(i)%dstElement = dynamicMaskList(i)%dstElement / renorm + elsewhere + dynamicMaskList(i)%dstElement = dynamicSrcMaskValue + end where + where (renorm > 0.d0 .and. dynamicMaskList(i)%dstElement > max_input) + dynamicMaskList(i)%dstElement = max_input + end where + where (renorm > 0.d0 .and. dynamicMaskList(i)%dstElement < min_input) + dynamicMaskList(i)%dstElement = min_input + end where + enddo + endif + ! return successfully + rc = ESMF_SUCCESS + end subroutine monotonicDynMaskProcV logical function match(missing,b) @@ -1337,6 +1388,12 @@ subroutine initialize_subclass(this, unusable, rc) & dynamicMaskRoutine=simpleDynMaskProcV, & & rc=rc) _VERIFY(rc) + case (REGRID_METHOD_BILINEAR_MONOTONIC, REGRID_METHOD_CONSERVE_MONOTONIC) + call ESMF_DynamicMaskSetR4R8R4V(this%dynamic_mask, & + & dynamicSrcMaskValue=MAPL_undef, & + & dynamicMaskRoutine=monotonicDynMaskProcV, & + & rc=rc) + _VERIFY(rc) case (REGRID_METHOD_VOTE) call ESMF_DynamicMaskSetR4R8R4V(this%dynamic_mask, & & dynamicSrcMaskValue=MAPL_undef, & @@ -1435,7 +1492,7 @@ subroutine create_route_handle(this, kind, rc) if (.not.global) unmappedaction=ESMF_UNMAPPEDACTION_IGNORE end if select case (spec%regrid_method) - case (REGRID_METHOD_BILINEAR) + case (REGRID_METHOD_BILINEAR, REGRID_METHOD_BILINEAR_MONOTONIC) call ESMF_FieldRegridStore(src_field, dst_field, & & regridmethod=ESMF_REGRIDMETHOD_BILINEAR, & @@ -1462,7 +1519,7 @@ subroutine create_route_handle(this, kind, rc) & factorList=factorList, factorIndexList=factorIndexList, & & routehandle=route_handle, unmappedaction=unmappedaction, rc=status) _VERIFY(status) - case (REGRID_METHOD_CONSERVE, REGRID_METHOD_VOTE, REGRID_METHOD_FRACTION) + case (REGRID_METHOD_CONSERVE, REGRID_METHOD_CONSERVE_MONOTONIC, REGRID_METHOD_VOTE, REGRID_METHOD_FRACTION) call ESMF_FieldRegridStore(src_field, dst_field, & & regridmethod=ESMF_REGRIDMETHOD_CONSERVE, & & srcTermProcessing = srcTermProcessing, & diff --git a/base/RegridMethods.F90 b/base/RegridMethods.F90 index dfdc698a2c48..ba16f543c914 100644 --- a/base/RegridMethods.F90 +++ b/base/RegridMethods.F90 @@ -5,8 +5,10 @@ module mapl_RegridMethods public :: REGRID_HINT_LOCAL public :: REGRID_METHOD_IDENTITY public :: REGRID_METHOD_BILINEAR + public :: REGRID_METHOD_BILINEAR_MONOTONIC public :: REGRID_METHOD_BILINEAR_ROTATE public :: REGRID_METHOD_CONSERVE + public :: REGRID_METHOD_CONSERVE_MONOTONIC public :: REGRID_METHOD_VOTE public :: REGRID_METHOD_FRACTION public :: REGRID_METHOD_CONSERVE_2ND @@ -27,6 +29,8 @@ module mapl_RegridMethods enumerator :: REGRID_METHOD_PATCH enumerator :: REGRID_METHOD_NEAREST_STOD enumerator :: REGRID_METHOD_CONSERVE_HFLUX + enumerator :: REGRID_METHOD_BILINEAR_MONOTONIC + enumerator :: REGRID_METHOD_CONSERVE_MONOTONIC enumerator :: UNSPECIFIED_REGRID_METHOD = -1 end enum integer, parameter :: TILING_METHODS(3) = [REGRID_METHOD_CONSERVE,REGRID_METHOD_VOTE,REGRID_METHOD_FRACTION] diff --git a/gridcomps/History/MAPL_HistoryCollection.F90 b/gridcomps/History/MAPL_HistoryCollection.F90 index 1655a760a7b4..ae367ae7e1b2 100644 --- a/gridcomps/History/MAPL_HistoryCollection.F90 +++ b/gridcomps/History/MAPL_HistoryCollection.F90 @@ -70,7 +70,7 @@ module MAPL_HistoryCollectionMod real :: vscale character(len=ESMF_MAXSTR) :: vunit character(len=ESMF_MAXSTR) :: vvars(2) - integer :: conservative + integer :: regrid_method integer :: voting integer :: nbits integer :: deflate diff --git a/gridcomps/History/MAPL_HistoryGridComp.F90 b/gridcomps/History/MAPL_HistoryGridComp.F90 index 08868fff6ad4..bb49d05a23b9 100644 --- a/gridcomps/History/MAPL_HistoryGridComp.F90 +++ b/gridcomps/History/MAPL_HistoryGridComp.F90 @@ -426,6 +426,7 @@ subroutine Initialize ( gc, import, dumexport, clock, rc ) character(len=ESMF_MAXSTR), allocatable :: regexList(:) type(StringStringMap) :: global_attributes character(len=ESMF_MAXSTR) :: name + logical :: has_conservative_keyword, has_regrid_keyword ! Begin !------ @@ -880,13 +881,25 @@ subroutine Initialize ( gc, import, dumexport, clock, rc ) call ESMF_ConfigGetAttribute ( cfg, list(n)%tm, default=tm_default, & label=trim(string) // 'tm:', rc=status ) _VERIFY(STATUS) - call ESMF_ConfigGetAttribute ( cfg, list(n)%conservative, default=0, & - label=trim(string) // 'conservative:' ,rc=status ) - _VERIFY(STATUS) - if (list(n)%conservative==0) then - list(n)%conservative=REGRID_METHOD_BILINEAR - else if (list(n)%conservative==1) then - list(n)%conservative=REGRID_METHOD_CONSERVE + + call ESMF_ConfigFindLabel ( cfg, label=trim(string) // 'conservative:',isPresent=has_conservative_keyword,_RC) + call ESMF_ConfigFindLabel ( cfg, label=trim(string) // 'regrid_method:',isPresent=has_regrid_keyword,_RC) + _ASSERT(has_conservative_keyword .and. has_regrid_keyword,trim(string)//" specified both conservative and regrid_method") + + if (has_conservative_keyword) then + call ESMF_ConfigGetAttribute ( cfg, list(n)%regrid_method, default=0, & + label=trim(string) // 'conservative:' ,rc=status ) + _VERIFY(STATUS) + if (list(n)%regrid_method==0) then + list(n)%regrid_method=REGRID_METHOD_BILINEAR + else if (list(n)%regrid_method==1) then + list(n)%regrid_method=REGRID_METHOD_CONSERVE + end if + end if + if (has_regrid_keyword) then + call ESMF_ConfigGetAttribute ( cfg, list(n)%regrid_method, default=REGRID_METHOD_BILINEAR, & + label=trim(string) // 'regrid_method:' ,rc=status ) + _VERIFY(STATUS) end if ! Get an optional file containing a 1-D track for the output @@ -2482,7 +2495,7 @@ subroutine Initialize ( gc, import, dumexport, clock, rc ) _VERIFY(status) call list(n)%mGriddedIO%set_param(nbits=list(n)%nbits,rc=status) _VERIFY(status) - call list(n)%mGriddedIO%set_param(regrid_method=list(n)%conservative,rc=status) + call list(n)%mGriddedIO%set_param(regrid_method=list(n)%regrid_method,rc=status) _VERIFY(status) call list(n)%mGriddedIO%set_param(itemOrder=intState%fileOrderAlphabetical,rc=status) _VERIFY(status) From 9ae0462bebb1038145ad88f80f681f20b6e720e4 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Thu, 26 May 2022 11:38:20 -0400 Subject: [PATCH 21/71] update to add "monotonic" option to regridding --- base/RegridMethods.F90 | 38 +++++++++++++++++++ gridcomps/ExtData2G/ExtDataConfig.F90 | 6 +-- .../ExtData2G/ExtDataOldTypesCreator.F90 | 13 ++----- gridcomps/History/MAPL_HistoryGridComp.F90 | 8 ++-- griddedio/Regrid_Util.F90 | 19 +--------- 5 files changed, 52 insertions(+), 32 deletions(-) diff --git a/base/RegridMethods.F90 b/base/RegridMethods.F90 index ba16f543c914..b8b809adc77a 100644 --- a/base/RegridMethods.F90 +++ b/base/RegridMethods.F90 @@ -1,4 +1,5 @@ module mapl_RegridMethods + use ESMF implicit none private @@ -17,6 +18,7 @@ module mapl_RegridMethods public :: REGRID_METHOD_CONSERVE_HFLUX public :: UNSPECIFIED_REGRID_METHOD public :: TILING_METHODS + public :: get_regrid_method enum, bind(c) enumerator :: REGRID_METHOD_IDENTITY @@ -36,5 +38,41 @@ module mapl_RegridMethods integer, parameter :: TILING_METHODS(3) = [REGRID_METHOD_CONSERVE,REGRID_METHOD_VOTE,REGRID_METHOD_FRACTION] integer, parameter :: REGRID_HINT_LOCAL = 1 + contains + + function get_regrid_method(string_regrid_method) result(int_regrid_method) + integer :: int_regrid_method + character(len=*), intent(in) :: string_regrid_method + + character(len=:), allocatable :: temp_str + temp_str = ESMF_UtilStringUpperCase(trim(string_regrid_method)) + + select case (temp_str) + case ("IDENTITY") + int_regrid_method = REGRID_METHOD_IDENTITY + case ("BILINEAR") + int_regrid_method = REGRID_METHOD_BILINEAR + case ("BILINEAR_ROTATE") + int_regrid_method = REGRID_METHOD_BILINEAR_ROTATE + case ("CONSERVE") + int_regrid_method = REGRID_METHOD_CONSERVE + case ("VOTE") + int_regrid_method = REGRID_METHOD_VOTE + case ("FRACTION") + int_regrid_method = REGRID_METHOD_FRACTION + case ("CONSERVE_2ND") + int_regrid_method = REGRID_METHOD_CONSERVE_2ND + case ("PATCH") + int_regrid_method = REGRID_METHOD_PATCH + case ("CONSERVE_HFLUX") + int_regrid_method = REGRID_METHOD_CONSERVE_HFLUX + case ("CONSERVE_MONOTONIC") + int_regrid_method = REGRID_METHOD_CONSERVE_MONOTONIC + case ("BILINEAR_MONOTONIC") + int_regrid_method = REGRID_METHOD_BILINEAR_MONOTONIC + case default + int_regrid_method = UNSPECIFIED_REGRID_METHOD + end select + end function end module mapl_RegridMethods diff --git a/gridcomps/ExtData2G/ExtDataConfig.F90 b/gridcomps/ExtData2G/ExtDataConfig.F90 index 14b8489eb16f..54f87021b213 100644 --- a/gridcomps/ExtData2G/ExtDataConfig.F90 +++ b/gridcomps/ExtData2G/ExtDataConfig.F90 @@ -344,14 +344,14 @@ subroutine add_new_rule(this,key,export_rule,multi_rule,rc) uname = key(1:semi_pos-1) vname = key(semi_pos+1:len_trim(key)) temp_rule => this%rule_map%at(trim(uname)) - _ASSERT(.not.associated(temp_rule),"duplicated export entry key") + _ASSERT(.not.associated(temp_rule),"duplicated export entry key: "//trim(key)) call this%rule_map%insert(trim(uname),ucomp) temp_rule => this%rule_map%at(trim(vname)) - _ASSERT(.not.associated(temp_rule),"duplicated export entry key") + _ASSERT(.not.associated(temp_rule),"duplicated export entry key: "//trim(key)) call this%rule_map%insert(trim(vname),vcomp) else temp_rule => this%rule_map%at(trim(key)) - _ASSERT(.not.associated(temp_rule),"duplicated export entry key") + _ASSERT(.not.associated(temp_rule),"duplicated export entry key: "//trim(key)) call this%rule_map%insert(trim(key),rule) end if _RETURN(_SUCCESS) diff --git a/gridcomps/ExtData2G/ExtDataOldTypesCreator.F90 b/gridcomps/ExtData2G/ExtDataOldTypesCreator.F90 index c8af31d007f8..305c93d6727c 100644 --- a/gridcomps/ExtData2G/ExtDataOldTypesCreator.F90 +++ b/gridcomps/ExtData2G/ExtDataOldTypesCreator.F90 @@ -108,19 +108,14 @@ subroutine fillin_primary(this,item_name,base_name,primary_item,time,clock,unusa end if ! regrid method - if (trim(rule%regrid_method) == "BILINEAR") then - primary_item%trans = REGRID_METHOD_BILINEAR - else if (trim(rule%regrid_method) == "CONSERVE") then - primary_item%trans = REGRID_METHOD_CONSERVE - else if (trim(rule%regrid_method) == "VOTE") then - primary_item%trans = REGRID_METHOD_VOTE - else if (index(rule%regrid_method,"FRACTION;")>0) then + if (index(rule%regrid_method,"FRACTION;")>0) then semi_pos = index(rule%regrid_method,";") read(rule%regrid_method(semi_pos+1:),*) primary_item%fracVal primary_item%trans = REGRID_METHOD_FRACTION - else - _FAIL("Invalid regridding method") + else + primary_item%trans = get_regrid_method(rule%regrid_method) end if + _ASSERT(primary_item%trans/=UNSPECIFIED_REGRID_METHOD,"improper regrid method chosen") if (trim(time_sample%extrap_outside) =="clim") then primary_item%cycling=.true. diff --git a/gridcomps/History/MAPL_HistoryGridComp.F90 b/gridcomps/History/MAPL_HistoryGridComp.F90 index bb49d05a23b9..2076ddb621e0 100644 --- a/gridcomps/History/MAPL_HistoryGridComp.F90 +++ b/gridcomps/History/MAPL_HistoryGridComp.F90 @@ -425,7 +425,7 @@ subroutine Initialize ( gc, import, dumexport, clock, rc ) type(ESMF_Field), allocatable :: fldList(:) character(len=ESMF_MAXSTR), allocatable :: regexList(:) type(StringStringMap) :: global_attributes - character(len=ESMF_MAXSTR) :: name + character(len=ESMF_MAXSTR) :: name,regrid_method logical :: has_conservative_keyword, has_regrid_keyword ! Begin @@ -884,8 +884,9 @@ subroutine Initialize ( gc, import, dumexport, clock, rc ) call ESMF_ConfigFindLabel ( cfg, label=trim(string) // 'conservative:',isPresent=has_conservative_keyword,_RC) call ESMF_ConfigFindLabel ( cfg, label=trim(string) // 'regrid_method:',isPresent=has_regrid_keyword,_RC) - _ASSERT(has_conservative_keyword .and. has_regrid_keyword,trim(string)//" specified both conservative and regrid_method") + _ASSERT(.not.(has_conservative_keyword .and. has_regrid_keyword),trim(string)//" specified both conservative and regrid_method") + list(n)%regrid_method = REGRID_METHOD_BILINEAR if (has_conservative_keyword) then call ESMF_ConfigGetAttribute ( cfg, list(n)%regrid_method, default=0, & label=trim(string) // 'conservative:' ,rc=status ) @@ -897,9 +898,10 @@ subroutine Initialize ( gc, import, dumexport, clock, rc ) end if end if if (has_regrid_keyword) then - call ESMF_ConfigGetAttribute ( cfg, list(n)%regrid_method, default=REGRID_METHOD_BILINEAR, & + call ESMF_ConfigGetAttribute ( cfg, regrid_method, default="REGRID_METHOD_BILINEAR", & label=trim(string) // 'regrid_method:' ,rc=status ) _VERIFY(STATUS) + list(n)%regrid_method = get_regrid_method(trim(regrid_method)) end if ! Get an optional file containing a 1-D track for the output diff --git a/griddedio/Regrid_Util.F90 b/griddedio/Regrid_Util.F90 index b23a7f008765..574aa15058ba 100644 --- a/griddedio/Regrid_Util.F90 +++ b/griddedio/Regrid_Util.F90 @@ -182,23 +182,8 @@ subroutine process_command_line(this,rc) end select enddo - if (trim(regridMth) .ne. 'bilinear' .and. trim(regridMth ) .ne. 'conservative' .and. trim(regridMth ) .ne. 'conservative2' .and. & - trim(regridMth).ne.'patch') then - if (MAPL_AM_I_Root()) write(*,*)'invalid regrid method choose bilinear or conservative' - _FAIL('needs informative message') - end if - if (trim(regridMth) == 'bilinear') then - this%regridMethod = REGRID_METHOD_BILINEAR - end if - if (trim(regridMth) == 'patch') then - this%regridMethod = REGRID_METHOD_PATCH - end if - if (trim(regridMth) == 'conservative') then - this%regridMethod = REGRID_METHOD_CONSERVE - end if - if (trim(regridMth) == 'conservative2') then - this%regridMethod = REGRID_METHOD_CONSERVE_2ND - end if + this%regridMethod = get_regrid_method(regridMth) + _ASSERT(this%regridMethod/=UNSPECIFIED_REGRID_METHOD,"improper regrid method chosen") this%filenames = split_string(cfilenames,',') this%outputfiles = split_string(coutputfiles,',') From 4fb27228dd75da8a7bdfb56c46781d9561f9b55d Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Thu, 26 May 2022 11:44:04 -0400 Subject: [PATCH 22/71] update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a0e2990c095..04ad508563a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add debug loggers for start/stop during stages in MAPL_Generic - Handling for double precision input when retrieving single precision attributes - Enable GCM run test in CircleCI (1-hour, no ExtData) +- Added monotonic regridding option +- Make availalbe to History and ExtData2G all supported regridding methods ### Changed From 0569e4bfeb336ebcbcc7da2a8877328cbea9f0a8 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Thu, 26 May 2022 13:01:20 -0400 Subject: [PATCH 23/71] oops, forgot the most important part! --- base/MAPL_EsmfRegridder.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/base/MAPL_EsmfRegridder.F90 b/base/MAPL_EsmfRegridder.F90 index 8ebdab4767bb..519f216ef6f9 100644 --- a/base/MAPL_EsmfRegridder.F90 +++ b/base/MAPL_EsmfRegridder.F90 @@ -1392,6 +1392,7 @@ subroutine initialize_subclass(this, unusable, rc) call ESMF_DynamicMaskSetR4R8R4V(this%dynamic_mask, & & dynamicSrcMaskValue=MAPL_undef, & & dynamicMaskRoutine=monotonicDynMaskProcV, & + & handleAllElements=.true., & & rc=rc) _VERIFY(rc) case (REGRID_METHOD_VOTE) From a01951218db158ec96d0715e7bdbdfdc1aef6f22 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 3 Jun 2022 12:25:32 -0400 Subject: [PATCH 24/71] Update to ESMA_cmake v3.16.0 --- CHANGELOG.md | 1 + components.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a5d75749721..fc9a8e1e289d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Modified error messages in FileMetadataUtilities to be unique and print filename +- Updated the ESMA_cmake version to v3.16.0 ### Removed diff --git a/components.yaml b/components.yaml index 9e5748618313..d84e5e3017a0 100644 --- a/components.yaml +++ b/components.yaml @@ -11,7 +11,7 @@ ESMA_env: ESMA_cmake: local: ./ESMA_cmake remote: ../ESMA_cmake.git - tag: v3.12.0 + tag: v3.16.0 develop: develop ecbuild: From 630154c5bbcba612396d5f917da326e821d1acce Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 3 Jun 2022 12:43:14 -0400 Subject: [PATCH 25/71] Update GitHub Actions --- .github/workflows/workflow.yml | 81 ++-------------------------------- CHANGELOG.md | 1 + 2 files changed, 5 insertions(+), 77 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index b86cbbc3aa35..05fa5f62f17a 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -17,7 +17,7 @@ jobs: name: Build and Test MAPL runs-on: ubuntu-latest container: - image: gmao/ubuntu20-geos-env-mkl:v6.2.8-openmpi_4.0.6-gcc_11.2.0 + image: gmao/ubuntu20-geos-env-mkl:v6.2.13-openmpi_4.1.2-gcc_11.2.0 # Per https://github.com/actions/virtual-environments/issues/1445#issuecomment-713861495 # It seems like we might not need secrets on GitHub Actions which is good for forked # pull requests @@ -30,7 +30,7 @@ jobs: OMPI_MCA_btl_vader_single_copy_mechanism: none steps: - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.9.0 + uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} - name: Checkout @@ -62,84 +62,11 @@ jobs: make -j4 build-tests # skip performance tests ctest -R MAPL -LE PERFORMANCE --output-on-failure - ############################################################################################################################################################ - # build_gcm: # - # name: Build GEOSgcm # - # if: "!contains(github.event.pull_request.labels.*.name, '0 diff trivial')" # - # runs-on: ubuntu-latest # - # container: # - # image: gmao/ubuntu20-geos-env-mkl:v6.2.8-openmpi_4.0.6-gcc_11.2.0 # - # env: # - # OMPI_ALLOW_RUN_AS_ROOT: 1 # - # OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 # - # OMPI_MCA_btl_vader_single_copy_mechanism: none # - # steps: # - # - name: Cancel Previous Runs # - # uses: styfle/cancel-workflow-action@0.9.0 # - # with: # - # access_token: ${{ github.token }} # - # - name: Checkout GCM # - # uses: actions/checkout@v2 # - # with: # - # repository: GEOS-ESM/GEOSgcm # - # fetch-depth: 1 # - # - name: Versions etc. # - # run: | # - # gfortran --version # - # mpirun --version # - # echo $BASEDIR # - # echo ${GITHUB_HEAD_REF} # - # echo ${{github.ref}} # - # echo ${{github.head_ref}} # - # - name: Mepo clone external repos # - # run: | # - # mepo init # - # mepo clone # - # mepo status # - # mepo develop GEOSgcm_GridComp GEOSgcm_App # - # mepo status # - # # The next two actions use: # - # # https://github.community/t/is-there-a-way-to-tell-if-a-pr-is-from-a-forked-repository/134186/7?u=mathomp4 # - # # to test if you are in a fork or not # - # - name: Git checkout MAPL branch (forks) # - # if: github.event.pull_request.head.repo.full_name != github.repository # - # working-directory: ./src/Shared/@MAPL # - # run: | # - # # GITHUB_REF will look like 'refs/pull/669/merge' and we want 'pull/669' # - # GITHUB_REF_STRIP_REFS=${GITHUB_REF##refs/} # - # GITHUB_REF_STRIP_MERGE=${GITHUB_REF_STRIP_REFS%%/merge} # - # # This was figured out with looking at CircleCI output # - # git fetch --force origin "${GITHUB_REF_STRIP_MERGE}/head:remotes/origin/${GITHUB_REF_STRIP_MERGE}" # - # mepo checkout ${GITHUB_REF_STRIP_MERGE} MAPL # - # mepo status # - # # If we are in the same org, this will work # - # - name: Mepo checkout MAPL branch (same org), MAPL on main/develop # - # if: github.event.pull_request.head.repo.full_name == github.repository && (github.head_ref == 'main' || github.head_ref == 'develop') # - # run: | # - # mepo checkout ${GITHUB_HEAD_REF} MAPL # - # mepo status # - # # If we are in the same org, this will work # - # - name: Mepo checkout MAPL branch (same org), MAPL not on main/develop # - # if: github.event.pull_request.head.repo.full_name == github.repository && (github.head_ref != 'main' && github.head_ref != 'develop') # - # run: | # - # mepo checkout ${GITHUB_HEAD_REF} MAPL # - # mepo checkout-if-exists ${GITHUB_HEAD_REF} # - # mepo status # - # - name: CMake # - # run: | # - # mkdir build # - # cd build # - # cmake .. -DBASEDIR=$BASEDIR/Linux -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_BUILD_TYPE=Debug -DMPIEXEC_PREFLAGS='--oversubscribe' -DUSE_F2PY=OFF # - # - name: Build # - # run: | # - # cd build # - # make -j4 install # - ############################################################################################################################################################ build_test_mapl_intel: name: Build and Test MAPL Intel runs-on: ubuntu-latest container: - image: gmao/ubuntu20-geos-env:v6.2.8-intelmpi_2021.3.0-intel_2021.3.0 + image: gmao/ubuntu20-geos-env:v6.2.13-intelmpi_2021.3.0-intel_2021.3.0 # Per https://github.com/actions/virtual-environments/issues/1445#issuecomment-713861495 # It seems like we might not need secrets on GitHub Actions which is good for forked # pull requests @@ -148,7 +75,7 @@ jobs: #password: ${{ secrets.DOCKERHUB_TOKEN }} steps: - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.9.0 + uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} - name: Checkout diff --git a/CHANGELOG.md b/CHANGELOG.md index fc9a8e1e289d..a4ae276cef82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Modified error messages in FileMetadataUtilities to be unique and print filename - Updated the ESMA_cmake version to v3.16.0 +- Updated GitHub Actions MAPL build tests ### Removed From f9f207a08b9434034912636f38f80adf9f8c6681 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 6 Jun 2022 13:44:05 -0400 Subject: [PATCH 26/71] Fixes #1544. Adds _ASSERT for missing ExtData file --- CHANGELOG.md | 1 + gridcomps/ExtData2G/ExtDataConfig.F90 | 30 +++++++++++++++------------ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4ae276cef82..ab3315175639 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Modified error messages in FileMetadataUtilities to be unique and print filename - Updated the ESMA_cmake version to v3.16.0 - Updated GitHub Actions MAPL build tests +- Added assert for missing file with ExtData2G ### Removed diff --git a/gridcomps/ExtData2G/ExtDataConfig.F90 b/gridcomps/ExtData2G/ExtDataConfig.F90 index 54f87021b213..143ba31a59a0 100644 --- a/gridcomps/ExtData2G/ExtDataConfig.F90 +++ b/gridcomps/ExtData2G/ExtDataConfig.F90 @@ -28,7 +28,7 @@ module MAPL_ExtDataConfig type(ExtDataDerivedMap) :: derived_map type(ExtDataFileStreamMap) :: file_stream_map type(ExtDataTimeSampleMap) :: sample_map - + contains procedure :: add_new_rule procedure :: get_item_type @@ -40,7 +40,7 @@ module MAPL_ExtDataConfig contains - recursive subroutine new_ExtDataConfig_from_yaml(ext_config,config_file,current_time,unusable,rc) + recursive subroutine new_ExtDataConfig_from_yaml(ext_config,config_file,current_time,unusable,rc) class(ExtDataConfig), intent(inout), target :: ext_config character(len=*), intent(in) :: config_file type(ESMF_Time), intent(in) :: current_time @@ -65,16 +65,20 @@ recursive subroutine new_ExtDataConfig_from_yaml(ext_config,config_file,current_ integer :: i,num_rules integer, allocatable :: sorted_rules(:) character(len=1) :: i_char + logical :: file_found _UNUSED_DUMMY(unusable) + inquire(file=trim(config_file),exist=file_found) + _ASSERT(file_found,"could not find: "//trim(config_file)) + stack_depth=stack_depth+1 p = Parser('core') fstream=FileStream(config_file) yaml_node_stack(stack_depth) = p%load(fstream) call fstream%close() - if (yaml_node_stack(stack_depth)%has("subconfigs")) then + if (yaml_node_stack(stack_depth)%has("subconfigs")) then subconfigs = yaml_node_stack(stack_depth)%at("subconfigs") _ASSERT(subconfigs%is_sequence(),'subconfigs is not a sequence') do i=1,subconfigs%size() @@ -83,7 +87,7 @@ recursive subroutine new_ExtDataConfig_from_yaml(ext_config,config_file,current_ _VERIFY(status) end do end if - + if (yaml_node_stack(stack_depth)%has("Samplings")) then sample_config = yaml_node_stack(stack_depth)%of("Samplings") iter = sample_config%begin() @@ -122,14 +126,14 @@ recursive subroutine new_ExtDataConfig_from_yaml(ext_config,config_file,current_ if (subcfg%is_mapping()) then call ext_config%add_new_rule(key,subcfg,_RC) else if (subcfg%is_sequence()) then - sorted_rules = sort_rules_by_start(subcfg,_RC) + sorted_rules = sort_rules_by_start(subcfg,_RC) num_rules = subcfg%size() do i=1,num_rules rule_map = subcfg%of(sorted_rules(i)) write(i_char,'(I1)')i new_key = key//rule_sep//i_char call ext_config%add_new_rule(new_key,rule_map,multi_rule=.true.,_RC) - enddo + enddo else _FAIL("Exports must be sequence or map") end if @@ -167,7 +171,7 @@ function count_rules_for_item(this,item_name,rc) result(number_of_rules) class(ExtDataConfig), intent(in) :: this character(len=*), intent(in) :: item_name integer, optional, intent(out) :: rc - + type(ExtDataRuleMapIterator) :: rule_iterator character(len=:), pointer :: key integer :: idx @@ -200,7 +204,7 @@ function get_time_range(this,item_name,rc) result(time_range) type(ExtDataRule), pointer :: rule integer :: i,status,idx type(ESMF_Time) :: very_future_time - + rule_iterator = this%rule_map%begin() do while(rule_iterator /= this%rule_map%end()) key => rule_iterator%key() @@ -281,7 +285,7 @@ function get_item_type(this,item_name,unusable,rc) result(item_type) _UNUSED_DUMMY(unusable) item_type=ExtData_not_found - + found_rule = .false. rule_iterator = this%rule_map%begin() do while(rule_iterator /= this%rule_map%end()) @@ -316,7 +320,7 @@ function get_item_type(this,item_name,unusable,rc) result(item_type) _RETURN(_SUCCESS) end function get_item_type - subroutine add_new_rule(this,key,export_rule,multi_rule,rc) + subroutine add_new_rule(this,key,export_rule,multi_rule,rc) class(ExtDataConfig), intent(inout) :: this character(len=*), intent(in) :: key type(configuration), intent(in) :: export_rule @@ -385,18 +389,18 @@ function get_extra_derived_items(this,primary_items,derived_items,rc) result(nee ! now we have a stringvector of the variables involved in the expression ! check which of this are already in primary_items list, if any are not ! then we need to createa new list of needed variables and the "derived field" - ! wence to coppy them + ! wence to coppy them do i=1,variables_in_expression%size() sval => variables_in_expression%at(i) if (.not.string_in_string_vector(sval,primary_items)) then rule => this%rule_map%at(sval) _ASSERT(associated(rule),"no rule for "//trim(sval)//" needed by "//trim(derived_name)) - call needed_vars%push_back(sval//","//derived_name) + call needed_vars%push_back(sval//","//derived_name) end if enddo call string_iter%next() enddo - + _RETURN(_SUCCESS) end function get_extra_derived_items From d72bf3e5d4416ed2dbc9e3eadb17996783e3ceef Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 7 Jun 2022 09:47:42 -0400 Subject: [PATCH 27/71] Updates for Spack Support --- CHANGELOG.md | 1 + CMakeLists.txt | 3 +++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab3315175639..c8e16416c26a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated the ESMA_cmake version to v3.16.0 - Updated GitHub Actions MAPL build tests - Added assert for missing file with ExtData2G +- Add `find_package(MPI)` for non-Baselibs builds ### Removed diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c36faf15fe0..8b926badfbf0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,6 +111,9 @@ endif () ecbuild_declare_project() if (NOT Baselibs_FOUND) + set(MPI_DETERMINE_LIBRARY_VERSION TRUE) + find_package(MPI) + find_package(NetCDF REQUIRED Fortran) add_definitions(-DHAS_NETCDF4) add_definitions(-DHAS_NETCDF3) From d9cbe44ec54f0b6ad18fec37e90906c1a87f7ca2 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 7 Jun 2022 09:53:34 -0400 Subject: [PATCH 28/71] Add library alias --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b926badfbf0..cfa68f08a752 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -127,6 +127,9 @@ if (NOT Baselibs_FOUND) if (NOT TARGET esmf) find_package(ESMF MODULE REQUIRED) + + # MAPL uses lowercase due to historical reasons + add_library(esmf ALIAS ESMF) endif () endif () From 91c46e1d3e18ab31e0217881ee14de6cc448219c Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 7 Jun 2022 09:54:32 -0400 Subject: [PATCH 29/71] Add interface library --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index cfa68f08a752..50dbfa7facd4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,6 +128,9 @@ if (NOT Baselibs_FOUND) if (NOT TARGET esmf) find_package(ESMF MODULE REQUIRED) + # ESMF as used in MAPL requires MPI + target_link_libraries(ESMF INTERFACE MPI::MPI_Fortran) + # MAPL uses lowercase due to historical reasons add_library(esmf ALIAS ESMF) endif () From bf599e862f8282b1252b199d394695fb03d5a58f Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 7 Jun 2022 10:24:08 -0400 Subject: [PATCH 30/71] Change all esmf to ESMF in CMake --- CHANGELOG.md | 6 +++++- CMakeLists.txt | 4 ++-- MAPL/CMakeLists.txt | 4 ++-- MAPL_cfio/CMakeLists.txt | 14 +++++++------- Tests/CMakeLists.txt | 4 ++-- base/CMakeLists.txt | 20 ++++++++++---------- base/tests/CMakeLists.txt | 2 +- generic/CMakeLists.txt | 2 +- gridcomps/Cap/CMakeLists.txt | 2 +- gridcomps/ExtData/CMakeLists.txt | 2 +- gridcomps/ExtData2G/CMakeLists.txt | 2 +- gridcomps/History/CMakeLists.txt | 2 +- gridcomps/Orbit/CMakeLists.txt | 2 +- griddedio/CMakeLists.txt | 4 ++-- pfunit/CMakeLists.txt | 4 ++-- 15 files changed, 39 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8e16416c26a..4e6899de234f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated the ESMA_cmake version to v3.16.0 - Updated GitHub Actions MAPL build tests - Added assert for missing file with ExtData2G -- Add `find_package(MPI)` for non-Baselibs builds +- Updates for Sspack support + - Add `find_package(MPI)` for non-Baselibs builds + - Update all `esmf` target references in CMake to `ESMF` + - Add `esmf` alias library for `ESMF` for compatibility + - Add explicit interface dependence of `MPI` for `ESMF` target ### Removed diff --git a/CMakeLists.txt b/CMakeLists.txt index 50dbfa7facd4..7ca12ed9e43e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,13 +125,13 @@ if (NOT Baselibs_FOUND) add_definitions(-DH5_HAVE_PARALLEL) endif() - if (NOT TARGET esmf) + if (NOT TARGET ESMF) find_package(ESMF MODULE REQUIRED) # ESMF as used in MAPL requires MPI target_link_libraries(ESMF INTERFACE MPI::MPI_Fortran) - # MAPL uses lowercase due to historical reasons + # MAPL and GEOS used lowercase target due to historical reasons add_library(esmf ALIAS ESMF) endif () endif () diff --git a/MAPL/CMakeLists.txt b/MAPL/CMakeLists.txt index a7d0f97de35d..fe702cf53de5 100644 --- a/MAPL/CMakeLists.txt +++ b/MAPL/CMakeLists.txt @@ -4,9 +4,9 @@ esma_set_this() esma_add_library (${this} SRCS MAPL.F90 DEPENDENCIES MAPL.base MAPL.generic MAPL.pfio MAPL_cfio_r4 MAPL.gridcomps MAPL.orbit MAPL.griddedio ${EXTDATA_TARGET} - esmf NetCDF::NetCDF_Fortran MPI::MPI_Fortran + ESMF NetCDF::NetCDF_Fortran MPI::MPI_Fortran $<$:FLAP::FLAP> - TYPE ${MAPL_LIBRARY_TYPE} + TYPE ${MAPL_LIBRARY_TYPE} ) target_compile_definitions (${this} PRIVATE $<$:BUILD_WITH_EXTDATA2G>) diff --git a/MAPL_cfio/CMakeLists.txt b/MAPL_cfio/CMakeLists.txt index 342cdc9e0c75..e87b583bcd0b 100644 --- a/MAPL_cfio/CMakeLists.txt +++ b/MAPL_cfio/CMakeLists.txt @@ -4,12 +4,12 @@ string (REPLACE MAPL_cfio_ "" precision ${this}) set (srcs ESMF_CFIOBaseMod.f - ESMF_CFIOFileMod.F90 - ESMF_CFIOGridMod.F90 - ESMF_CFIOMod.F90 - ESMF_CFIOSdfMod.F90 - ESMF_CFIOUtilMod.F90 - ESMF_CFIOVarInfoMod.F90 + ESMF_CFIOFileMod.F90 + ESMF_CFIOGridMod.F90 + ESMF_CFIOMod.F90 + ESMF_CFIOSdfMod.F90 + ESMF_CFIOUtilMod.F90 + ESMF_CFIOVarInfoMod.F90 ShaveMantissa.c ) @@ -44,7 +44,7 @@ endif () esma_add_library (${lib} SRCS ${srcs} - DEPENDENCIES esmf NetCDF::NetCDF_Fortran + DEPENDENCIES ESMF NetCDF::NetCDF_Fortran TYPE ${LIBRARY_TYPE} ) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index bba1dbb97aa7..eb37b886b41d 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -11,7 +11,7 @@ set (srcs if (BUILD_WITH_FLAP) ecbuild_add_executable (TARGET ExtDataDriver.x SOURCES ${srcs}) - target_link_libraries (ExtDataDriver.x PRIVATE MAPL FLAP::FLAP esmf) + target_link_libraries (ExtDataDriver.x PRIVATE MAPL FLAP::FLAP ESMF) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG") target_link_libraries(ExtDataDriver.x PRIVATE OpenMP::OpenMP_Fortran) @@ -20,7 +20,7 @@ if (BUILD_WITH_FLAP) target_compile_definitions (ExtDataDriver.x PRIVATE $<$:BUILD_WITH_EXTDATA2G>) ecbuild_add_executable (TARGET pfio_MAPL_demo.x SOURCES pfio_MAPL_demo.F90) - target_link_libraries (pfio_MAPL_demo.x PRIVATE MAPL FLAP::FLAP esmf) + target_link_libraries (pfio_MAPL_demo.x PRIVATE MAPL FLAP::FLAP ESMF) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG") target_link_libraries(pfio_MAPL_demo.x PRIVATE OpenMP::OpenMP_Fortran) diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index 113d798cb93f..b17ff89b4309 100644 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt @@ -19,10 +19,10 @@ set (srcs ESMF_CFIOPtrVectorMod.F90 MAPL_RegridderVector.F90 ESMFL_Mod.F90 MAPL_SatVapor.F90 FileMetadataUtilities.F90 MAPL_GetLatLonCoord.F90 MAPL_SimpleAlarm.F90 - FileMetadataUtilitiesVector.F90 MAPL_GridManager.F90 MAPL_SimpleBundleMod.F90 + FileMetadataUtilitiesVector.F90 MAPL_GridManager.F90 MAPL_SimpleBundleMod.F90 MAPL_AbstractGridFactory.F90 MAPL_GridSpec.F90 MAPL_StringGridFactoryMap.F90 MAPL_GridType.F90 MAPL_StringGridMap.F90 MaplGrid.F90 - MAPL_AbstractRegridder.F90 + MAPL_AbstractRegridder.F90 MAPL_StringRouteHandleMap.F90 MAPL_IdentityRegridder.F90 MAPL_stubs.F90 MAPL_Integer64GridFactoryMap.F90 MAPL_sun_uc.F90 @@ -37,16 +37,16 @@ set (srcs MAPL_ConservativeRegridder.F90 MAPL_MaxMinMod.F90 MAPL_VerticalInterpMod.F90 MAPL_CubedSphereGridFactory.F90 MAPL_MemUtils.F90 MAPL_VerticalMethods.F90 MAPL_DefGridName.F90 Base.F90 MAPL_VotingRegridder.F90 - MAPL_EsmfRegridder.F90 MAPL_NewArthParser.F90 + MAPL_EsmfRegridder.F90 MAPL_NewArthParser.F90 MAPL_ESMFTimeVectorMod.F90 Regrid_Functions_Mod.F90 - MAPL_EtaHybridVerticalCoordinate.F90 - MAPL_NominalOrbitsMod.F90 + MAPL_EtaHybridVerticalCoordinate.F90 + MAPL_NominalOrbitsMod.F90 MAPL_LocStreamFactoryMod.F90 MAPL_LocstreamRegridder.F90 MAPL_ExternalGridFactory.F90 ServerManager.F90 ApplicationSupport.F90 - ESMF_CFIOPtrVectorMod.F90 + ESMF_CFIOPtrVectorMod.F90 CFIOCollection.F90 MAPL_CFIO.F90 - regex_module.F90 StringTemplate.F90 MAPL_SphericalGeometry.F90 + regex_module.F90 StringTemplate.F90 MAPL_SphericalGeometry.F90 regex_F.c c_mapl_locstream_F.c getrss.c memuse.c Base/Base_Base.F90 Base/Base_Base_implementation.F90 @@ -59,7 +59,7 @@ set (srcs esma_add_library( ${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.profiler MAPL.pfio MAPL_cfio_r4 PFLOGGER::pflogger GFTL_SHARED::gftl-shared - esmf NetCDF::NetCDF_Fortran MPI::MPI_Fortran + ESMF NetCDF::NetCDF_Fortran MPI::MPI_Fortran TYPE ${MAPL_LIBRARY_TYPE}) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 @@ -80,7 +80,7 @@ foreach(dir ${OSX_EXTRA_LIBRARY_PATH}) target_link_libraries(${this} PUBLIC "-Xlinker -rpath -Xlinker ${dir}") endforeach() -ecbuild_add_executable (TARGET cub2latlon.x SOURCES cub2latlon_regridder.F90 DEPENDS esmf MAPL.shared) +ecbuild_add_executable (TARGET cub2latlon.x SOURCES cub2latlon_regridder.F90 DEPENDS ESMF MAPL.shared) target_link_libraries (cub2latlon.x PRIVATE ${this} MAPL.pfio ${MPI_Fortran_LIBRARIES}) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG") @@ -92,7 +92,7 @@ if (EXTENDED_SOURCE) esma_fortran_generator_list (${this} ${EXTENDED_SOURCE}) endif() -# Users guide +# Users guide if (LATEX_FOUND) add_subdirectory (TeX) endif () diff --git a/base/tests/CMakeLists.txt b/base/tests/CMakeLists.txt index 9e300e6d8357..3c05a5200ba8 100644 --- a/base/tests/CMakeLists.txt +++ b/base/tests/CMakeLists.txt @@ -28,7 +28,7 @@ set (SRCS # MAPL_Initialize.F90 # ) #target_link_libraries (base_extras MAPL.shared MAPL.pfunit -# esmf NetCDF::NetCDF_Fortran) +# ESMF NetCDF::NetCDF_Fortran) add_pfunit_ctest(MAPL.base.tests TEST_SOURCES ${TEST_SRCS} diff --git a/generic/CMakeLists.txt b/generic/CMakeLists.txt index 643fc9bcf985..9172d70ddaaa 100644 --- a/generic/CMakeLists.txt +++ b/generic/CMakeLists.txt @@ -61,7 +61,7 @@ esma_add_library(${this} ) target_include_directories (${this} PUBLIC $) -target_link_libraries (${this} PUBLIC esmf NetCDF::NetCDF_Fortran) +target_link_libraries (${this} PUBLIC ESMF NetCDF::NetCDF_Fortran) if (PFUNIT_FOUND) add_subdirectory(tests EXCLUDE_FROM_ALL) diff --git a/gridcomps/Cap/CMakeLists.txt b/gridcomps/Cap/CMakeLists.txt index 07a2fe92b3cb..3126ee2795ad 100644 --- a/gridcomps/Cap/CMakeLists.txt +++ b/gridcomps/Cap/CMakeLists.txt @@ -13,7 +13,7 @@ endif() esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.profiler MAPL.history MAPL.ExtData ${EXTDATA2G_TARGET} TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran $<$:FLAP::FLAP>) target_compile_definitions (${this} PRIVATE $<$:BUILD_WITH_EXTDATA2G>) diff --git a/gridcomps/ExtData/CMakeLists.txt b/gridcomps/ExtData/CMakeLists.txt index dbc7e032cc6d..38922c95fd39 100644 --- a/gridcomps/ExtData/CMakeLists.txt +++ b/gridcomps/ExtData/CMakeLists.txt @@ -8,7 +8,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.generic MAPL.pfio MAPL.griddedio MAPL_cfio_r4 TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 diff --git a/gridcomps/ExtData2G/CMakeLists.txt b/gridcomps/ExtData2G/CMakeLists.txt index ee599479ac02..2d13a2a2463d 100644 --- a/gridcomps/ExtData2G/CMakeLists.txt +++ b/gridcomps/ExtData2G/CMakeLists.txt @@ -26,7 +26,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.base MAPL.generic MAPL.griddedio TYPE SHARED) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared YAFYAML::yafyaml esmf NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared YAFYAML::yafyaml ESMF NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) target_include_directories (${this} PUBLIC $) diff --git a/gridcomps/History/CMakeLists.txt b/gridcomps/History/CMakeLists.txt index 0973f096f2dc..ab015df5ede2 100644 --- a/gridcomps/History/CMakeLists.txt +++ b/gridcomps/History/CMakeLists.txt @@ -8,7 +8,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.generic MAPL.profiler MAPL.griddedio TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 diff --git a/gridcomps/Orbit/CMakeLists.txt b/gridcomps/Orbit/CMakeLists.txt index b33c4f37778b..41d34c979837 100644 --- a/gridcomps/Orbit/CMakeLists.txt +++ b/gridcomps/Orbit/CMakeLists.txt @@ -5,7 +5,7 @@ set (srcs ) esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.generic TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 diff --git a/griddedio/CMakeLists.txt b/griddedio/CMakeLists.txt index 44fd7a6e8336..862d98bd3bd5 100644 --- a/griddedio/CMakeLists.txt +++ b/griddedio/CMakeLists.txt @@ -11,7 +11,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.pfio MAPL_cfio_r4 TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 @@ -22,7 +22,7 @@ target_include_directories (${this} PUBLIC $ Date: Fri, 10 Jun 2022 14:18:09 -0400 Subject: [PATCH 31/71] add extdata testing framework --- CHANGELOG.md | 1 + .../test_cases/case1/AGCM1.rc | 24 +++ .../test_cases/case1/AGCM2.rc | 29 +++ .../test_cases/case1/CAP.rc | 4 + .../test_cases/case1/CAP1.rc | 25 +++ .../test_cases/case1/CAP2.rc | 15 ++ .../test_cases/case1/ExtData.rc | 13 ++ .../test_cases/case1/HISTORY1.rc | 13 ++ .../test_cases/case1/HISTORY2.rc | 5 + .../test_cases/case1/README | 1 + .../test_cases/case1/extdata.yaml | 5 + .../test_cases/case10/AGCM1.rc | 22 ++ .../test_cases/case10/AGCM2.rc | 27 +++ .../test_cases/case10/CAP.rc | 4 + .../test_cases/case10/CAP1.rc | 36 ++++ .../test_cases/case10/CAP2.rc | 14 ++ .../test_cases/case10/ExtData.rc | 12 ++ .../test_cases/case10/HISTORY1.rc | 11 + .../test_cases/case10/HISTORY2.rc | 5 + .../test_cases/case10/README | 2 + .../test_cases/case10/extdata.yaml | 6 + .../test_cases/case11/AGCM1.rc | 22 ++ .../test_cases/case11/AGCM2.rc | 27 +++ .../test_cases/case11/CAP.rc | 4 + .../test_cases/case11/CAP1.rc | 36 ++++ .../test_cases/case11/CAP2.rc | 14 ++ .../test_cases/case11/ExtData.rc | 12 ++ .../test_cases/case11/HISTORY1.rc | 11 + .../test_cases/case11/HISTORY2.rc | 5 + .../test_cases/case11/README | 1 + .../test_cases/case11/extdata.yaml | 4 + .../test_cases/case12/AGCM1.rc | 22 ++ .../test_cases/case12/AGCM2.rc | 27 +++ .../test_cases/case12/CAP.rc | 4 + .../test_cases/case12/CAP1.rc | 16 ++ .../test_cases/case12/CAP2.rc | 13 ++ .../test_cases/case12/ExtData.rc | 13 ++ .../test_cases/case12/HISTORY1.rc | 30 +++ .../test_cases/case12/HISTORY2.rc | 5 + .../test_cases/case12/README | 1 + .../test_cases/case12/extdata.yaml | 6 + .../test_cases/case12/nproc.rc | 1 + .../test_cases/case13/AGCM1.rc | 22 ++ .../test_cases/case13/AGCM2.rc | 25 +++ .../test_cases/case13/CAP.rc | 4 + .../test_cases/case13/CAP1.rc | 25 +++ .../test_cases/case13/CAP2.rc | 13 ++ .../test_cases/case13/ExtData.rc | 12 ++ .../test_cases/case13/HISTORY1.rc | 12 ++ .../test_cases/case13/HISTORY2.rc | 5 + .../test_cases/case13/README | 1 + .../test_cases/case13/extdata.yaml | 4 + .../test_cases/case14/AGCM1.rc | 22 ++ .../test_cases/case14/AGCM2.rc | 24 +++ .../test_cases/case14/CAP.rc | 4 + .../test_cases/case14/CAP1.rc | 10 + .../test_cases/case14/CAP2.rc | 14 ++ .../test_cases/case14/ExtData.rc | 12 ++ .../test_cases/case14/HISTORY1.rc | 12 ++ .../test_cases/case14/HISTORY2.rc | 5 + .../test_cases/case14/README | 1 + .../test_cases/case14/extdata.yaml | 6 + .../test_cases/case15/AGCM1.rc | 22 ++ .../test_cases/case15/AGCM2.rc | 27 +++ .../test_cases/case15/CAP.rc | 4 + .../test_cases/case15/CAP1.rc | 10 + .../test_cases/case15/CAP2.rc | 14 ++ .../test_cases/case15/ExtData.rc | 12 ++ .../test_cases/case15/HISTORY1.rc | 13 ++ .../test_cases/case15/HISTORY2.rc | 5 + .../test_cases/case15/README | 1 + .../test_cases/case15/extdata.yaml | 6 + .../test_cases/case16/AGCM1.rc | 22 ++ .../test_cases/case16/AGCM2.rc | 27 +++ .../test_cases/case16/CAP.rc | 4 + .../test_cases/case16/CAP1.rc | 10 + .../test_cases/case16/CAP2.rc | 14 ++ .../test_cases/case16/ExtData.rc | 12 ++ .../test_cases/case16/HISTORY1.rc | 13 ++ .../test_cases/case16/HISTORY2.rc | 5 + .../test_cases/case16/README | 1 + .../test_cases/case16/extdata.yaml | 6 + .../test_cases/case18/AGCM1.rc | 24 +++ .../test_cases/case18/AGCM2.rc | 33 +++ .../test_cases/case18/CAP.rc | 4 + .../test_cases/case18/CAP1.rc | 26 +++ .../test_cases/case18/CAP2.rc | 15 ++ .../test_cases/case18/ExtData.rc | 15 ++ .../test_cases/case18/HISTORY1.rc | 15 ++ .../test_cases/case18/HISTORY2.rc | 13 ++ .../test_cases/case18/README | 1 + .../test_cases/case18/extdata.yaml | 4 + .../test_cases/case18/nproc.rc | 1 + .../test_cases/case19/AGCM1.rc | 24 +++ .../test_cases/case19/CAP.rc | 3 + .../test_cases/case19/CAP1.rc | 25 +++ .../test_cases/case19/ExtData.rc | 12 ++ .../test_cases/case19/HISTORY1.rc | 5 + .../test_cases/case19/README | 1 + .../test_cases/case19/extdata.yaml | 2 + .../test_cases/case2/AGCM1.rc | 24 +++ .../test_cases/case2/AGCM2.rc | 30 +++ .../test_cases/case2/CAP.rc | 4 + .../test_cases/case2/CAP1.rc | 25 +++ .../test_cases/case2/CAP2.rc | 15 ++ .../test_cases/case2/ExtData.rc | 13 ++ .../test_cases/case2/HISTORY1.rc | 13 ++ .../test_cases/case2/HISTORY2.rc | 5 + .../test_cases/case2/README | 1 + .../test_cases/case2/extdata.yaml | 7 + .../test_cases/case20/AGCM1.rc | 22 ++ .../test_cases/case20/AGCM2.rc | 24 +++ .../test_cases/case20/CAP.rc | 4 + .../test_cases/case20/CAP1.rc | 10 + .../test_cases/case20/CAP2.rc | 14 ++ .../test_cases/case20/ExtData.rc | 12 ++ .../test_cases/case20/HISTORY1.rc | 12 ++ .../test_cases/case20/HISTORY2.rc | 5 + .../test_cases/case20/README | 1 + .../test_cases/case20/extdata.yaml | 8 + .../test_cases/case21/AGCM1.rc | 24 +++ .../test_cases/case21/AGCM2.rc | 33 +++ .../test_cases/case21/CAP.rc | 4 + .../test_cases/case21/CAP1.rc | 25 +++ .../test_cases/case21/CAP2.rc | 15 ++ .../test_cases/case21/ExtData.rc | 13 ++ .../test_cases/case21/HISTORY1.rc | 13 ++ .../test_cases/case21/HISTORY2.rc | 5 + .../test_cases/case21/README | 1 + .../test_cases/case21/extdata.yaml | 8 + .../test_cases/case22/AGCM1.rc | 22 ++ .../test_cases/case22/AGCM2.rc | 22 ++ .../test_cases/case22/AGCM3.rc | 26 +++ .../test_cases/case22/CAP.rc | 5 + .../test_cases/case22/CAP1.rc | 12 ++ .../test_cases/case22/CAP2.rc | 12 ++ .../test_cases/case22/CAP3.rc | 11 + .../test_cases/case22/ExtData.rc | 12 ++ .../test_cases/case22/HISTORY1.rc | 13 ++ .../test_cases/case22/HISTORY2.rc | 13 ++ .../test_cases/case22/HISTORY3.rc | 13 ++ .../test_cases/case22/README | 1 + .../test_cases/case22/case1.rcx | 7 + .../test_cases/case22/case2.rcx | 7 + .../test_cases/case22/egress | 0 .../test_cases/case22/extdata.yaml | 7 + .../test_cases/case22/warnings_and_errors.log | 60 ++++++ .../test_cases/case23/AGCM1.rc | 22 ++ .../test_cases/case23/AGCM2.rc | 22 ++ .../test_cases/case23/AGCM3.rc | 26 +++ .../test_cases/case23/CAP.rc | 5 + .../test_cases/case23/CAP1.rc | 11 + .../test_cases/case23/CAP2.rc | 11 + .../test_cases/case23/CAP3.rc | 11 + .../test_cases/case23/ExtData.rc | 12 ++ .../test_cases/case23/HISTORY1.rc | 12 ++ .../test_cases/case23/HISTORY2.rc | 12 ++ .../test_cases/case23/HISTORY3.rc | 12 ++ .../test_cases/case23/README | 1 + .../test_cases/case23/extdata.yaml | 11 + .../test_cases/case24/AGCM1.rc | 22 ++ .../test_cases/case24/AGCM2.rc | 27 +++ .../test_cases/case24/CAP.rc | 4 + .../test_cases/case24/CAP1.rc | 25 +++ .../test_cases/case24/CAP2.rc | 15 ++ .../test_cases/case24/ExtData.rc | 13 ++ .../test_cases/case24/HISTORY1.rc | 19 ++ .../test_cases/case24/HISTORY2.rc | 5 + .../test_cases/case24/README | 1 + .../test_cases/case24/extdata.yaml | 6 + .../test_cases/case24/nproc.rc | 1 + .../test_cases/case25/AGCM1.rc | 22 ++ .../test_cases/case25/AGCM2.rc | 26 +++ .../test_cases/case25/CAP.rc | 4 + .../test_cases/case25/CAP1.rc | 25 +++ .../test_cases/case25/CAP2.rc | 15 ++ .../test_cases/case25/ExtData.rc | 13 ++ .../test_cases/case25/HISTORY1.rc | 23 +++ .../test_cases/case25/HISTORY2.rc | 5 + .../test_cases/case25/README | 1 + .../test_cases/case25/extdata.yaml | 5 + .../test_cases/case26/AGCM1.rc | 24 +++ .../test_cases/case26/AGCM2.rc | 29 +++ .../test_cases/case26/CAP.rc | 4 + .../test_cases/case26/CAP1.rc | 25 +++ .../test_cases/case26/CAP2.rc | 15 ++ .../test_cases/case26/ExtData.rc | 13 ++ .../test_cases/case26/HISTORY1.rc | 31 +++ .../test_cases/case26/HISTORY2.rc | 5 + .../test_cases/case26/README | 1 + .../test_cases/case26/extdata.yaml | 6 + .../test_cases/case3/AGCM1.rc | 22 ++ .../test_cases/case3/AGCM2.rc | 27 +++ .../test_cases/case3/CAP.rc | 4 + .../test_cases/case3/CAP1.rc | 24 +++ .../test_cases/case3/CAP2.rc | 15 ++ .../test_cases/case3/ExtData.rc | 12 ++ .../test_cases/case3/HISTORY1.rc | 11 + .../test_cases/case3/HISTORY2.rc | 5 + .../test_cases/case3/README | 1 + .../test_cases/case3/extdata.yaml | 6 + .../test_cases/case4/AGCM1.rc | 22 ++ .../test_cases/case4/AGCM2.rc | 26 +++ .../test_cases/case4/CAP.rc | 4 + .../test_cases/case4/CAP1.rc | 16 ++ .../test_cases/case4/CAP2.rc | 13 ++ .../test_cases/case4/ExtData.rc | 12 ++ .../test_cases/case4/HISTORY1.rc | 11 + .../test_cases/case4/HISTORY2.rc | 5 + .../test_cases/case4/README | 1 + .../test_cases/case4/extdata.yaml | 6 + .../test_cases/case5/AGCM1.rc | 22 ++ .../test_cases/case5/AGCM2.rc | 26 +++ .../test_cases/case5/CAP.rc | 4 + .../test_cases/case5/CAP1.rc | 16 ++ .../test_cases/case5/CAP2.rc | 13 ++ .../test_cases/case5/ExtData.rc | 12 ++ .../test_cases/case5/HISTORY1.rc | 11 + .../test_cases/case5/HISTORY2.rc | 5 + .../test_cases/case5/README | 1 + .../test_cases/case5/extdata.yaml | 4 + .../test_cases/case6/AGCM1.rc | 22 ++ .../test_cases/case6/AGCM2.rc | 24 +++ .../test_cases/case6/CAP.rc | 4 + .../test_cases/case6/CAP1.rc | 10 + .../test_cases/case6/CAP2.rc | 14 ++ .../test_cases/case6/ExtData.rc | 12 ++ .../test_cases/case6/HISTORY1.rc | 12 ++ .../test_cases/case6/HISTORY2.rc | 5 + .../test_cases/case6/README | 1 + .../test_cases/case6/extdata.yaml | 6 + .../test_cases/case7/AGCM1.rc | 22 ++ .../test_cases/case7/AGCM2.rc | 25 +++ .../test_cases/case7/CAP.rc | 4 + .../test_cases/case7/CAP1.rc | 25 +++ .../test_cases/case7/CAP2.rc | 14 ++ .../test_cases/case7/ExtData.rc | 11 + .../test_cases/case7/HISTORY1.rc | 12 ++ .../test_cases/case7/HISTORY2.rc | 5 + .../test_cases/case7/README | 1 + .../test_cases/case7/extdata.yaml | 6 + .../test_cases/case8/AGCM1.rc | 22 ++ .../test_cases/case8/AGCM2.rc | 26 +++ .../test_cases/case8/CAP.rc | 4 + .../test_cases/case8/CAP1.rc | 9 + .../test_cases/case8/CAP2.rc | 14 ++ .../test_cases/case8/ExtData.rc | 12 ++ .../test_cases/case8/HISTORY1.rc | 12 ++ .../test_cases/case8/HISTORY2.rc | 5 + .../test_cases/case8/README | 1 + .../test_cases/case8/extdata.yaml | 4 + .../test_cases/case9/AGCM1.rc | 22 ++ .../test_cases/case9/AGCM2.rc | 25 +++ .../test_cases/case9/CAP.rc | 4 + .../test_cases/case9/CAP1.rc | 14 ++ .../test_cases/case9/CAP2.rc | 17 ++ .../test_cases/case9/ExtData.rc | 12 ++ .../test_cases/case9/HISTORY1.rc | 12 ++ .../test_cases/case9/HISTORY2.rc | 5 + .../test_cases/case9/README | 1 + .../test_cases/case9/extdata.yaml | 6 + .../test_cases/cases.txt | 25 +++ .../test_cases/test_case_descriptions.md | 33 +++ .../test_cases/use_extdata2g.rc | 1 + .../test_script/.gitignore | 1 + .../test_script/run_case.py | 64 ++++++ .../test_script/run_extdatadriver_cases.py | 56 +++++ .../test_script/utils.py | 191 ++++++++++++++++++ 268 files changed, 3653 insertions(+) create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case1/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case10/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case11/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case12/nproc.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case13/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case14/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case15/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case16/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case19/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case19/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case19/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case19/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case19/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case2/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case20/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case21/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM3.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP3.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY3.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/case1.rcx create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/case2.rcx create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/egress create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case22/warnings_and_errors.log create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM3.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP3.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY3.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case23/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case24/nproc.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case25/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case26/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case3/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case4/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case5/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case6/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case7/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case8/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/ExtData.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY1.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY2.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/README create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case9/extdata.yaml create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/cases.txt create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/test_case_descriptions.md create mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc create mode 100644 Tests/ExtData_Testing_Framekwork/test_script/.gitignore create mode 100755 Tests/ExtData_Testing_Framekwork/test_script/run_case.py create mode 100755 Tests/ExtData_Testing_Framekwork/test_script/run_extdatadriver_cases.py create mode 100644 Tests/ExtData_Testing_Framekwork/test_script/utils.py diff --git a/CHANGELOG.md b/CHANGELOG.md index bde3067f9929..518405762a9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Enable GCM run test in CircleCI (1-hour, no ExtData) - Added monotonic regridding option - Make availalbe to History and ExtData2G all supported regridding methods +- Add test cases for ExtData ### Changed diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM1.rc new file mode 100644 index 000000000000..83ad27a2c551 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM1.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +FILL_DEF:: +VAR2D time +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM2.rc new file mode 100644 index 000000000000..2e79954523bd --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM2.rc @@ -0,0 +1,29 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +FILL_DEF:: +VAR2D time +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP1.rc new file mode 100644 index 000000000000..ce2690d6937b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP2.rc new file mode 100644 index 000000000000..4e9e1bb95026 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP2.rc @@ -0,0 +1,15 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20041125 210000 +20041126 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case1/ExtData.rc new file mode 100644 index 000000000000..a45d1dd13f7f --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/ExtData.rc @@ -0,0 +1,13 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4.nc4 +VAR3D NA N N 0 none none VAR3D case1.%y4.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY1.rc new file mode 100644 index 000000000000..51d004d9660c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY1.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.duration: 000000 + case1.fields: 'VAR2D', 'Root', + 'VAR3D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/README b/Tests/ExtData_Testing_Framekwork/test_cases/case1/README new file mode 100644 index 000000000000..9a6d7597262d --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/README @@ -0,0 +1 @@ +Case, 12-month/12 time 2004 file with 2 updates, non-climatology diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case1/extdata.yaml new file mode 100644 index 000000000000..e2ddb90675ab --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case1/extdata.yaml @@ -0,0 +1,5 @@ +Collections: + fstream1: {template: case1.%y4.nc4, valid_range: "2004-01-01/2005-01-01" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1} + VAR3D: {variable: VAR3D, collection: fstream1} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM1.rc new file mode 100644 index 000000000000..302766bebfab --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM2.rc new file mode 100644 index 000000000000..58616c46abc8 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM2.rc @@ -0,0 +1,27 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +CLIM_YEAR: 2005 +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP1.rc new file mode 100644 index 000000000000..7ad5b6f1a378 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP1.rc @@ -0,0 +1,36 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00002400 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +20050115 210000 +20050215 210000 +20050315 210000 +20050415 210000 +20050515 210000 +20050615 210000 +20050715 210000 +20050815 210000 +20050915 210000 +20051015 210000 +20051115 210000 +20051215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP2.rc new file mode 100644 index 000000000000..af18ab35fe0d --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20060101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20060225 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case10/ExtData.rc new file mode 100644 index 000000000000..92697fa916f0 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .true. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4%m2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY1.rc new file mode 100644 index 000000000000..0b54db8e8f25 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY1.rc @@ -0,0 +1,11 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/README b/Tests/ExtData_Testing_Framekwork/test_cases/case10/README new file mode 100644 index 000000000000..d2069c0d94d4 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/README @@ -0,0 +1,2 @@ +Interpolation outside of data set (Harvard mode), make a multi year dataset. +Define as not a climatology and ask for data after dataset time range diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case10/extdata.yaml new file mode 100644 index 000000000000..4e9e3ccb39fb --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case10/extdata.yaml @@ -0,0 +1,6 @@ +Samplings: + extrap_clim: {extrapolation: clim} +Collections: + fstream1: {template: "case1.%y4%m2.nc4", valid_range: "2004-01-01/2005-12-31" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: extrap_clim} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM1.rc new file mode 100644 index 000000000000..302766bebfab --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM2.rc new file mode 100644 index 000000000000..48eb8ed1b8d3 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM2.rc @@ -0,0 +1,27 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +CLIM_YEAR: 2006 +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP1.rc new file mode 100644 index 000000000000..e800400d918a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP1.rc @@ -0,0 +1,36 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20060101 210000 + +JOB_SGMT: 00002400 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20060115 210000 +20060215 210000 +20060315 210000 +20060415 210000 +20060515 210000 +20060615 210000 +20060715 210000 +20060815 210000 +20060915 210000 +20061015 210000 +20061115 210000 +20061215 210000 +20070115 210000 +20070215 210000 +20070315 210000 +20070415 210000 +20070515 210000 +20070615 210000 +20070715 210000 +20070815 210000 +20070915 210000 +20071015 210000 +20071115 210000 +20071215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP2.rc new file mode 100644 index 000000000000..68f902819dd8 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20050101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20050225 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case11/ExtData.rc new file mode 100644 index 000000000000..92697fa916f0 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .true. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4%m2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY1.rc new file mode 100644 index 000000000000..0b54db8e8f25 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY1.rc @@ -0,0 +1,11 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/README b/Tests/ExtData_Testing_Framekwork/test_cases/case11/README new file mode 100644 index 000000000000..52a3f7e59bfa --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/README @@ -0,0 +1 @@ +Interpolation outside of data set (Harvard mode), make a multi year dataset. Define as not a climatology and ask for data before datset time range diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case11/extdata.yaml new file mode 100644 index 000000000000..f5641f693d84 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case11/extdata.yaml @@ -0,0 +1,4 @@ +Collections: + fstream1: {template: "case1.%y4%m2.nc4", valid_range: "2006-01-01/2007-12-31" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: {extrapolation: clim}} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM1.rc new file mode 100644 index 000000000000..5d1b0f452725 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 6 +NY: 36 + +Root.GRID_TYPE: Cubed-Sphere +Root.GRIDNAME: PE24x144-CF +Root.LM: 3 +Root.NF 6 +Root.IM_WORLD: 24 + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +FILL_DEF:: +VAR2D time +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM2.rc new file mode 100644 index 000000000000..fe9b76e9ab6b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM2.rc @@ -0,0 +1,27 @@ +NX: 6 +NY: 36 + +Root.GRID_TYPE: Cubed-Sphere +Root.GRIDNAME: PE24x144-CF +Root.LM: 3 +Root.NF 6 +Root.IM_WORLD: 24 + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +FILL_DEF:: +VAR2D time +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP1.rc new file mode 100644 index 000000000000..bed0725f4039 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP1.rc @@ -0,0 +1,16 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20040702 000000 +20040703 000000 +20040704 000000 +20040705 000000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP2.rc new file mode 100644 index 000000000000..f4182daac2ca --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP2.rc @@ -0,0 +1,13 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20040703 120000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/ExtData.rc new file mode 100644 index 000000000000..19bc2d0132f6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/ExtData.rc @@ -0,0 +1,13 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N - none none VAR2D vars2d.nc4 +VAR3D NA N N - none none VAR3D vars3d.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY1.rc new file mode 100644 index 000000000000..bdc7875e13f3 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY1.rc @@ -0,0 +1,30 @@ +VERSION: 1 +GRID_LABELS: PC20x11-DC +:: + +PC20x11-DC.GRID_TYPE: LatLon +PC20x11-DC.IM_WORLD: 20 +PC20x11-DC.JM_WORLD: 11 +PC20x11-DC.POLE: PC +PC20x11-DC.DATELINE: DC +PC20x11-DC.LM: 3 + +COLLECTIONS: vars2d + vars3d +:: + + + vars2d.template: 'nc4', + vars2d.format: 'CFIO', + vars2d.frequency: 010000, + vars2d.duration: 000000 + vars2d.grid_label: PC20x11-DC + vars2d.fields: 'VAR2D', 'Root', + :: + vars3d.template: 'nc4', + vars3d.format: 'CFIO', + vars3d.frequency: 010000, + vars3d.duration: 000000 + vars3d.grid_label: PC20x11-DC + vars3d.fields: 'VAR3D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/README b/Tests/ExtData_Testing_Framekwork/test_cases/case12/README new file mode 100644 index 000000000000..faaab2c64256 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/README @@ -0,0 +1 @@ +Test of case where you want to make a really coarse file in History that can not be decomposed on the default layout in the rc file. Be able to output such a file, then read back in on same grid in ExtData diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case12/extdata.yaml new file mode 100644 index 000000000000..e7eeef4a6e16 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/extdata.yaml @@ -0,0 +1,6 @@ +Collections: + fstream1: {template: "vars2d.nc4"} + fstream2: {template: "vars3d.nc4"} +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: {update_frequency: "-"}} + VAR3D: {variable: VAR3D, collection: fstream2, sample: {update_frequency: "-"}} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/nproc.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case12/nproc.rc new file mode 100644 index 000000000000..a817176f4a68 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case12/nproc.rc @@ -0,0 +1 @@ +216 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM1.rc new file mode 100644 index 000000000000..1199f8335bc6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20070101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM2.rc new file mode 100644 index 000000000000..814c1dfd5e43 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM2.rc @@ -0,0 +1,25 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D 45.0+(73.0-45.0)*0.5 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP1.rc new file mode 100644 index 000000000000..b40edc56fda7 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20070101 000000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20070115 000000 +20070215 000000 +20070315 000000 +20070415 000000 +20070515 000000 +20070615 000000 +20070715 000000 +20070815 000000 +20070915 000000 +20071015 000000 +20071115 000000 +20071215 000000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP2.rc new file mode 100644 index 000000000000..ad9fdbaa59ef --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP2.rc @@ -0,0 +1,13 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20080101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20080229 120000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case13/ExtData.rc new file mode 100644 index 000000000000..e535516c3bdf --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA Y N 0 none none VAR2D case1.2007%m2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY1.rc new file mode 100644 index 000000000000..1e9dd9d44599 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY1.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + #case1.duration: 000000 + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/README b/Tests/ExtData_Testing_Framekwork/test_cases/case13/README new file mode 100644 index 000000000000..8a66da41fbc9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/README @@ -0,0 +1 @@ +Testing that we can take a climatology for a non-leap year and interpolate to a leap year. 12 files each with the midmonth value for 2007 (non-leap year). Interpolate to 02/29/2008 (leap year) diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case13/extdata.yaml new file mode 100644 index 000000000000..1dc456d831f9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case13/extdata.yaml @@ -0,0 +1,4 @@ +Collections: + fstream1: {template: "case1.2007%m2.nc4", valid_range: "2007-01-01/2007-12-31" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: {extrapolation: clim, source_time: "2007-01-01/2007-12-31"}} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM1.rc new file mode 100644 index 000000000000..58c95c0fd941 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20070101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM2.rc new file mode 100644 index 000000000000..0858aa614d31 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM2.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D 58.0+(59.0-58.0)*0.75 +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP1.rc new file mode 100644 index 000000000000..e725586cac99 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP1.rc @@ -0,0 +1,10 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20061231 000000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP2.rc new file mode 100644 index 000000000000..36aafef783fe --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20080229 120000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case14/ExtData.rc new file mode 100644 index 000000000000..00b82c0f4f77 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA 2007 N 0 none none VAR2D case1.%y4%m2%d2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY1.rc new file mode 100644 index 000000000000..7f1045a27232 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY1.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2%d2.nc4', + case1.format: 'CFIO', + case1.frequency: 240000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/README b/Tests/ExtData_Testing_Framekwork/test_cases/case14/README new file mode 100644 index 000000000000..712f8869bac4 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/README @@ -0,0 +1 @@ +Testing that we can take a climatology for a non-leap year and interpolate to a leap year. Daily files each with 1 value for 2007 (non-leap year). Interpolate to 02/29/2008 (leap year) diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case14/extdata.yaml new file mode 100644 index 000000000000..11c4ed30a938 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case14/extdata.yaml @@ -0,0 +1,6 @@ +Samplings: + sample_clim: {extrapolation: clim} +Collections: + fstream1: {template: "case1.%y4%m2%d2.nc4", valid_range: "2007-01-01/2007-12-31" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, source_time: "2007-01-01/2007-12-31", sample: sample_clim} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM1.rc new file mode 100644 index 000000000000..58c95c0fd941 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20070101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM2.rc new file mode 100644 index 000000000000..58fc61c57d55 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM2.rc @@ -0,0 +1,27 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +CLIM_YEAR: 2007 +REF_TIME: 20070101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP1.rc new file mode 100644 index 000000000000..957ef31d3145 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP1.rc @@ -0,0 +1,10 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20061231 230000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP2.rc new file mode 100644 index 000000000000..7e31eadc76a6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20060329 120000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case15/ExtData.rc new file mode 100644 index 000000000000..7032d5b44348 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA 2007 N 0 none none VAR2D case1.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY1.rc new file mode 100644 index 000000000000..0f000be68631 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY1.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: 'nc4', + case1.format: 'CFIO', + case1.frequency: 60000, + case1.duration: 000000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/README b/Tests/ExtData_Testing_Framekwork/test_cases/case15/README new file mode 100644 index 000000000000..c8303c9f308c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/README @@ -0,0 +1 @@ +Testing that we can take a climatology for a non-leap year and interpolate to a non-leap year. Daily files each with 1 value for 2007 (non-leap year). Interpolate to 03/29/2006 (leap year) diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case15/extdata.yaml new file mode 100644 index 000000000000..a64fe328c5bd --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case15/extdata.yaml @@ -0,0 +1,6 @@ +Samplings: + sample_clim: {extrapolation: clim, source_time: "2007-01-01/2007-12-31"} +Collections: + fstream1: {template: "case1.nc4", valid_range: "2007-01-01/2007-12-31" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: sample_clim} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM1.rc new file mode 100644 index 000000000000..81bb07dcdcbd --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20080101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM2.rc new file mode 100644 index 000000000000..040b724d894e --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM2.rc @@ -0,0 +1,27 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +CLIM_YEAR: 2008 +REF_TIME: 20080101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP1.rc new file mode 100644 index 000000000000..2840fe1b50ce --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP1.rc @@ -0,0 +1,10 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20071231 230000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP2.rc new file mode 100644 index 000000000000..8ed72d5aabe6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20060329 150000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case16/ExtData.rc new file mode 100644 index 000000000000..1b98d7c432b9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA 2008 N 0 none none VAR2D case1.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY1.rc new file mode 100644 index 000000000000..0f000be68631 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY1.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: 'nc4', + case1.format: 'CFIO', + case1.frequency: 60000, + case1.duration: 000000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/README b/Tests/ExtData_Testing_Framekwork/test_cases/case16/README new file mode 100644 index 000000000000..2b112ffe7b9c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/README @@ -0,0 +1 @@ +Testing that we can take a climatology for a leap year and interpolate to a non-leap year. Daily files each with 1 value for 2008 (leap year). Interpolate to 03/29/2006 15z (leap year) diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case16/extdata.yaml new file mode 100644 index 000000000000..89a527a980e2 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case16/extdata.yaml @@ -0,0 +1,6 @@ +Collections: + fstream1: {template: "case1.nc4", valid_range: "2008-01-01/2008-12-31" } +Samplings: + s1: {source_time: "2008-01-01/2008-12-31", extrapolation: clim} +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: s1} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM1.rc new file mode 100644 index 000000000000..7787931e9777 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM1.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +U2D , time , days , xy , c +V2D , time , days , xy , c +:: + +FILL_DEF:: +U2D 0.0 +V2D 5.0 +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM2.rc new file mode 100644 index 000000000000..13bea40d79d3 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM2.rc @@ -0,0 +1,33 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: FillExportsFromImports + +IMPORT_STATE:: +U2D , time , days , xy , c +#U3D , time , days , xyz , c +V2D , time , days , xy , c +#V3D , time , days , xyz , c +:: + +EXPORT_STATE:: +U2D , time , days , xy , c +#U3D , time , days , xyz , c +V2D , time , days , xy , c +#V3D , time , days , xyz , c +:: + +#FILL_DEF:: +#VAR2D time +#VAR3D time +#:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP1.rc new file mode 100644 index 000000000000..11e0e36bd675 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP1.rc @@ -0,0 +1,26 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP2.rc new file mode 100644 index 000000000000..4a0f45af02e4 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP2.rc @@ -0,0 +1,15 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20041126 210000 +:: + +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/ExtData.rc new file mode 100644 index 000000000000..79cf7c1399ab --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/ExtData.rc @@ -0,0 +1,15 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +U2D;V2D NA N N 0 none none U2D;V2D case1.%y4.nc4 +#U3D;V3D NA N N 0 none none U3D;V3D case1.%y4.nc4 +#U2D NA N N 0 none none U2D case1.%y4.nc4 +#V2D NA N N 0 none none V2D case1.%y4.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY1.rc new file mode 100644 index 000000000000..e19d49760185 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY1.rc @@ -0,0 +1,15 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.duration: 000000 + case1.fields: 'U2D', 'Root', + #'U3D', 'Root', + 'V2D', 'Root', + #'V3D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY2.rc new file mode 100644 index 000000000000..6091a4c984bd --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY2.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: + + case18_2.template: '%y4.nc4', + case18_2.format: 'CFIO', + case18_2.frequency: 010000, + case18_2.duration: 000000 + case18_2.fields: 'U2D', 'Root', + 'V2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/README b/Tests/ExtData_Testing_Framekwork/test_cases/case18/README new file mode 100644 index 000000000000..60994edbc151 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/README @@ -0,0 +1 @@ +Test vector regridding diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case18/extdata.yaml new file mode 100644 index 000000000000..c69f0f79bf8a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/extdata.yaml @@ -0,0 +1,4 @@ +Collections: + fstream1: {template: "case1.%y4.nc4"} +Exports: + U2D;V2D: {variable: U2D;V2D, collection: fstream1} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc new file mode 100644 index 000000000000..d00491fd7e5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc @@ -0,0 +1 @@ +1 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case19/AGCM1.rc new file mode 100644 index 000000000000..4ebd5b1a73fa --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case19/AGCM1.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D 17.0 +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP.rc new file mode 100644 index 000000000000..4f5328064bab --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP.rc @@ -0,0 +1,3 @@ +CASES:: +CAP1.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP1.rc new file mode 100644 index 000000000000..ce2690d6937b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case19/ExtData.rc new file mode 100644 index 000000000000..45b2e1653d38 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case19/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D /dev/null:17.0 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case19/HISTORY1.rc new file mode 100644 index 000000000000..d3a6677416e1 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case19/HISTORY1.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/README b/Tests/ExtData_Testing_Framekwork/test_cases/case19/README new file mode 100644 index 000000000000..23052d595d01 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case19/README @@ -0,0 +1 @@ +test /dev/null diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case19/extdata.yaml new file mode 100644 index 000000000000..47bc213019b6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case19/extdata.yaml @@ -0,0 +1,2 @@ +Exports: + VAR2D: {variable: VAR2D, collection: "/dev/null", linear_transformation: [17.0,0.0]} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM1.rc new file mode 100644 index 000000000000..ada4fab64746 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM1.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +FILL_DEF:: +VAR2D time +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM2.rc new file mode 100644 index 000000000000..6fb58c19aba5 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM2.rc @@ -0,0 +1,30 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +FILL_DEF:: +VAR2D time +VAR3D time +:: + +CLIM_YEAR: 2004 +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP1.rc new file mode 100644 index 000000000000..ce2690d6937b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP2.rc new file mode 100644 index 000000000000..4dc521f63044 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP2.rc @@ -0,0 +1,15 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20071125 210000 +20071126 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case2/ExtData.rc new file mode 100644 index 000000000000..9a1d56d1f370 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/ExtData.rc @@ -0,0 +1,13 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA Y N 0 none none VAR2D case1.2004.nc4 +VAR3D NA Y N 0 none none VAR3D case1.2004.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY1.rc new file mode 100644 index 000000000000..51d004d9660c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY1.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.duration: 000000 + case1.fields: 'VAR2D', 'Root', + 'VAR3D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/README b/Tests/ExtData_Testing_Framekwork/test_cases/case2/README new file mode 100644 index 000000000000..a022d98f1113 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/README @@ -0,0 +1 @@ +Case, 12-month/12 time 2004 file with 2 updates, climatology diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case2/extdata.yaml new file mode 100644 index 000000000000..739a9e22c98c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case2/extdata.yaml @@ -0,0 +1,7 @@ +Samplings: + sample_clim: {extrapolation: clim} +Collections: + fstream1: {template: "case1.2004.nc4"} +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: sample_clim} + VAR3D: {variable: VAR3D, collection: fstream1, sample: sample_clim} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM1.rc new file mode 100644 index 000000000000..3583e9d12516 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20160101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM2.rc new file mode 100644 index 000000000000..fb783b442edd --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM2.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D 59.0+(58.0-57.0)*0.5 +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP1.rc new file mode 100644 index 000000000000..397c91b0abe3 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP1.rc @@ -0,0 +1,10 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20151231 000000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP2.rc new file mode 100644 index 000000000000..0f06f66198de --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20200101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20200229 120000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case20/ExtData.rc new file mode 100644 index 000000000000..67ef7b54a4a8 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .true. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4%m2%d2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY1.rc new file mode 100644 index 000000000000..7f1045a27232 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY1.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2%d2.nc4', + case1.format: 'CFIO', + case1.frequency: 240000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/README b/Tests/ExtData_Testing_Framekwork/test_cases/case20/README new file mode 100644 index 000000000000..5e7fa8803054 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/README @@ -0,0 +1 @@ +Make daily files for 2016. Then start on February 29th in 2020 and allow extrapolation outside of dataset a climatology diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case20/extdata.yaml new file mode 100644 index 000000000000..01db6d85f976 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case20/extdata.yaml @@ -0,0 +1,8 @@ +Collections: + fstream1: {template: "case1.%y4%m2%d2.nc4", valid_range: "2016-01-01/2016-12-31" } +Samplings: + S1: + extrapolation: clim + source_time: "2016-01-01/2016-12-31" +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: S1} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM1.rc new file mode 100644 index 000000000000..1f672143e749 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM1.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR1 , time , days , xy , c +VAR2 , time , days , xy , c +:: + +FILL_DEF:: +VAR1 time +VAR2 time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM2.rc new file mode 100644 index 000000000000..14b0d586bdfb --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM2.rc @@ -0,0 +1,33 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +VAR1 , time , days , xy , c +VAR2 , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR1 , time , days , xy , c +VAR2 , time , days , xy , c +:: + + +FILL_DEF:: +VAR2D time+time +VAR1 time +VAR2 time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP1.rc new file mode 100644 index 000000000000..ce2690d6937b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP2.rc new file mode 100644 index 000000000000..4e9e1bb95026 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP2.rc @@ -0,0 +1,15 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20041125 210000 +20041126 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc new file mode 100644 index 000000000000..a45d1dd13f7f --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc @@ -0,0 +1,13 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4.nc4 +VAR3D NA N N 0 none none VAR3D case1.%y4.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY1.rc new file mode 100644 index 000000000000..bb5ee8a77ef6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY1.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.duration: 000000 + case1.fields: 'VAR1', 'Root', + 'VAR2', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/README b/Tests/ExtData_Testing_Framekwork/test_cases/case21/README new file mode 100644 index 000000000000..df7cb0f82872 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/README @@ -0,0 +1 @@ +test derived export to create sum of 2 variables diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case21/extdata.yaml new file mode 100644 index 000000000000..c1f9b4354434 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/extdata.yaml @@ -0,0 +1,8 @@ +Collections: + fstream1: {template: case1.%y4.nc4, valid_range: "2004-01-01/2005-01-01" } +Exports: + VAR1: {variable: VAR1, collection: fstream1} + VAR2: {variable: VAR2, collection: fstream1} + +Derived: + VAR2D: {function: VAR1+VAR2} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM1.rc new file mode 100644 index 000000000000..81bb07dcdcbd --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20080101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM2.rc new file mode 100644 index 000000000000..0a1f70b7456c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM2.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 90 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20080101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM3.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM3.rc new file mode 100644 index 000000000000..dc81ef15d2da --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM3.rc @@ -0,0 +1,26 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20080101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP.rc new file mode 100644 index 000000000000..7cbd02ce9493 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP.rc @@ -0,0 +1,5 @@ +CASES:: +CAP1.rc +CAP2.rc +CAP3.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP1.rc new file mode 100644 index 000000000000..2dd970d08f1b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP1.rc @@ -0,0 +1,12 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20071231 230000 + +JOB_SGMT: 00001201 000000 +HEARTBEAT_DT: 3600 + + +USE_EXTDATA2G: .true. +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP2.rc new file mode 100644 index 000000000000..18c901f66ed9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP2.rc @@ -0,0 +1,12 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20081231 230000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + + +USE_EXTDATA2G: .true. +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP3.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP3.rc new file mode 100644 index 000000000000..cbb7b325f460 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP3.rc @@ -0,0 +1,11 @@ +ROOT_NAME: Root +ROOT_CF: AGCM3.rc +HIST_CF: HISTORY3.rc + +BEG_DATE: 20081229 000000 + +JOB_SGMT: 00000010 000000 +HEARTBEAT_DT: 3600 + + +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/ExtData.rc new file mode 100644 index 000000000000..1b98d7c432b9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA 2008 N 0 none none VAR2D case1.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY1.rc new file mode 100644 index 000000000000..fe45450680fd --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY1.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: 'nc4', + case1.format: 'CFIO', + case1.frequency: 240000, + case1.duration: 000000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY2.rc new file mode 100644 index 000000000000..e75f98424508 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY2.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: case2 +:: + + case2.template: 'nc4', + case2.format: 'CFIO', + case2.frequency: 240000, + case2.duration: 000000, + case2.ref_time: 000000, + case2.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY3.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY3.rc new file mode 100644 index 000000000000..720dd45ecd3d --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY3.rc @@ -0,0 +1,13 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: + + case2.template: 'nc4', + case2.format: 'CFIO', + case2.frequency: 240000, + case2.duration: 000000, + case2.ref_time: 000000, + case2.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/README b/Tests/ExtData_Testing_Framekwork/test_cases/case22/README new file mode 100644 index 000000000000..6ea1c769dbad --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/README @@ -0,0 +1 @@ +test multiple datasets where an export uses both with with no extrapolation outside and crosses transition date diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/case1.rcx b/Tests/ExtData_Testing_Framekwork/test_cases/case22/case1.rcx new file mode 100644 index 000000000000..1a19553ea86f --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/case1.rcx @@ -0,0 +1,7 @@ + case1.template: 'nc4', + case1.format: 'CFIO', + case1.frequency: 240000, + case1.duration: 000000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/case2.rcx b/Tests/ExtData_Testing_Framekwork/test_cases/case22/case2.rcx new file mode 100644 index 000000000000..4ba51fb14b9b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/case2.rcx @@ -0,0 +1,7 @@ + case2.template: 'nc4', + case2.format: 'CFIO', + case2.frequency: 240000, + case2.duration: 000000, + case2.ref_time: 000000, + case2.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/egress b/Tests/ExtData_Testing_Framekwork/test_cases/case22/egress new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case22/extdata.yaml new file mode 100644 index 000000000000..34ce04867e7b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/extdata.yaml @@ -0,0 +1,7 @@ +Collections: + fstream1: {template: "case1.nc4", valid_range: "2008-01-01/2008-12-31"} + fstream2: {template: "case2.nc4", valid_range: "2009-01-01/2009-12-31"} +Exports: + VAR2D: + - {starting: "2008-01-01", variable: VAR2D, collection: fstream1} + - {starting: "2009-01-01", variable: VAR2D, collection: fstream2} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/warnings_and_errors.log b/Tests/ExtData_Testing_Framekwork/test_cases/case22/warnings_and_errors.log new file mode 100644 index 000000000000..9144b2f54291 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case22/warnings_and_errors.log @@ -0,0 +1,60 @@ +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: EXTDATA: In ExtData resource file, could not find: VAR2D +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: EXTDATA: In ExtData resource file, could not find: VAR2D +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: EXTDATA: In ExtData resource file, could not find: VAR2D +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage +pe=00000: MAPL: No configure file specified for logging layer. Using defaults. +pe=00000: EXTDATA: Using ExtData2G, note this is still in BETA stage diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM1.rc new file mode 100644 index 000000000000..3583e9d12516 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20160101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM2.rc new file mode 100644 index 000000000000..3583e9d12516 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM2.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20160101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM3.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM3.rc new file mode 100644 index 000000000000..fa066d52daf6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM3.rc @@ -0,0 +1,26 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: FillImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20160101 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP.rc new file mode 100644 index 000000000000..7cbd02ce9493 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP.rc @@ -0,0 +1,5 @@ +CASES:: +CAP1.rc +CAP2.rc +CAP3.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP1.rc new file mode 100644 index 000000000000..cd699d9b294a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP1.rc @@ -0,0 +1,11 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20151231 000000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + + +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP2.rc new file mode 100644 index 000000000000..70bafc168604 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP2.rc @@ -0,0 +1,11 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20191225 000000 + +JOB_SGMT: 00000020 000000 +HEARTBEAT_DT: 3600 + + +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP3.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP3.rc new file mode 100644 index 000000000000..177c24b23153 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP3.rc @@ -0,0 +1,11 @@ +ROOT_NAME: Root +ROOT_CF: AGCM3.rc +HIST_CF: HISTORY3.rc + +BEG_DATE: 20191227 000000 + +JOB_SGMT: 00000011 000000 +HEARTBEAT_DT: 3600 + + +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/ExtData.rc new file mode 100644 index 000000000000..67ef7b54a4a8 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .true. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4%m2%d2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY1.rc new file mode 100644 index 000000000000..7f1045a27232 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY1.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2%d2.nc4', + case1.format: 'CFIO', + case1.frequency: 240000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY2.rc new file mode 100644 index 000000000000..cddbea20dd5e --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY2.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case2 +:: + + case2.template: '%y4%m2%d2.nc4', + case2.format: 'CFIO', + case2.frequency: 240000, + case2.ref_time: 000000, + case2.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY3.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY3.rc new file mode 100644 index 000000000000..31702240896d --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY3.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: + + case1.template: '%y4%m2%d2.nc4', + case1.format: 'CFIO', + case1.frequency: 240000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/README b/Tests/ExtData_Testing_Framekwork/test_cases/case23/README new file mode 100644 index 000000000000..8f1c29fb1967 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/README @@ -0,0 +1 @@ +Test multiple datasets and treat Climatology in the first and a real-time in the 2nd diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case23/extdata.yaml new file mode 100644 index 000000000000..62007858b755 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case23/extdata.yaml @@ -0,0 +1,11 @@ +Collections: + fstream1: {template: "case1.%y4%m2%d2.nc4", valid_range: "2016-01-01/2016-12-31" } + fstream2: {template: "case2.%y4%m2%d2.nc4", valid_range: "2019-12-31/2020-01-10" } +Samplings: + S1: + extrapolation: clim + source_time: "2016-01-01/2016-12-31" +Exports: + VAR2D: + - {starting: 1970-01-01, variable: VAR2D, collection: fstream1, sample: S1} + - {starting: 2020-01-01, variable: VAR2D, collection: fstream2} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM1.rc new file mode 100644 index 000000000000..2ef970737fb7 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 6 + +Root.GRID_TYPE: Cubed-Sphere +Root.GRIDNAME: PE24x144-CF +Root.LM: 3 +Root.IM_WORLD: 24 +Root.NF: 6 + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +FILL_DEF:: +VAR2D time +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM2.rc new file mode 100644 index 000000000000..c49217bcec3c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM2.rc @@ -0,0 +1,27 @@ +NX: 1 +NY: 6 + +Root.GRID_TYPE: Cubed-Sphere +Root.GRIDNAME: PE24x144-CF +Root.LM: 3 +Root.IM_WORLD: 24 +Root.NF: 6 + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +VAR3D , time , days , xyz , c +:: + +FILL_DEF:: +VAR2D time +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP1.rc new file mode 100644 index 000000000000..ce2690d6937b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP2.rc new file mode 100644 index 000000000000..4e9e1bb95026 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP2.rc @@ -0,0 +1,15 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20041125 210000 +20041126 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/ExtData.rc new file mode 100644 index 000000000000..0e50d21b5b84 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/ExtData.rc @@ -0,0 +1,13 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4.nc4 +VAR3D NA N N 0 none none VAR3D case2.%y4.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY1.rc new file mode 100644 index 000000000000..15d036f1bc9f --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY1.rc @@ -0,0 +1,19 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 + case2 +:: + + case1.template: '%y4.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.duration: 000000 + case1.fields: 'VAR2D', 'Root', + :: + case2.template: '%y4.nc4', + case2.format: 'CFIO', + case2.frequency: 010000, + case2.duration: 000000 + case2.fields: 'VAR3D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/README b/Tests/ExtData_Testing_Framekwork/test_cases/case24/README new file mode 100644 index 000000000000..39f44190eea4 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/README @@ -0,0 +1 @@ +Case, 12-month/12 time 2004 file with 2 updates, non-climatology, cubed-sphere diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case24/extdata.yaml new file mode 100644 index 000000000000..ade3dd293935 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/extdata.yaml @@ -0,0 +1,6 @@ +Collections: + fstream1: {template: case1.%y4.nc4, valid_range: "2004-01-01/2005-01-01" } + fstream2: {template: case2.%y4.nc4, valid_range: "2004-01-01/2005-01-01" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1} + VAR3D: {variable: VAR3D, collection: fstream2} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/nproc.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case24/nproc.rc new file mode 100644 index 000000000000..1e8b31496214 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case24/nproc.rc @@ -0,0 +1 @@ +6 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM1.rc new file mode 100644 index 000000000000..9772fa73fa05 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR3D , time , days , xyz , e +:: + +FILL_DEF:: +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM2.rc new file mode 100644 index 000000000000..25468d893da6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM2.rc @@ -0,0 +1,26 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR3D , time , days , xyz , e +:: + +EXPORT_STATE:: +VAR3D , time , days , xyz , e +:: + +FILL_DEF:: +VAR3D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP1.rc new file mode 100644 index 000000000000..ce2690d6937b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP2.rc new file mode 100644 index 000000000000..4e9e1bb95026 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP2.rc @@ -0,0 +1,15 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20041125 210000 +20041126 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case25/ExtData.rc new file mode 100644 index 000000000000..a45d1dd13f7f --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/ExtData.rc @@ -0,0 +1,13 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4.nc4 +VAR3D NA N N 0 none none VAR3D case1.%y4.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY1.rc new file mode 100644 index 000000000000..1b6e816089a7 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY1.rc @@ -0,0 +1,23 @@ +GRID_LABELS: PC45x21-DC +:: + +PC45x21-DC.GRID_TYPE: LatLon +PC45x21-DC.IM_WORLD: 45 +PC45x21-DC.JM_WORLD: 21 +PC45x21-DC.POLE: PC +PC45x21-DC.DATELINE: DC +PC45x21-DC.LM: 3 + +#GRID_LABELS: +#:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.duration: 000000 + case1.grid_label: PC45x21-DC + case1.fields: 'VAR3D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/README b/Tests/ExtData_Testing_Framekwork/test_cases/case25/README new file mode 100644 index 000000000000..318986102ca4 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/README @@ -0,0 +1 @@ +test reading edge variables diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case25/extdata.yaml new file mode 100644 index 000000000000..e2ddb90675ab --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case25/extdata.yaml @@ -0,0 +1,5 @@ +Collections: + fstream1: {template: case1.%y4.nc4, valid_range: "2004-01-01/2005-01-01" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1} + VAR3D: {variable: VAR3D, collection: fstream1} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM1.rc new file mode 100644 index 000000000000..214bbb31e7bf --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM1.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR3Dc , time , days , xyz , c +VAR3De , time , days , xyz , e +:: + +FILL_DEF:: +VAR3Dc time +VAR3De time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM2.rc new file mode 100644 index 000000000000..defaa0643ab7 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM2.rc @@ -0,0 +1,29 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR3Dc , time , days , xyz , c +VAR3De , time , days , xyz , e +:: + +EXPORT_STATE:: +VAR3Dc , time , days , xyz , c +VAR3De , time , days , xyz , e +:: + +FILL_DEF:: +VAR3Dc time +VAR3De time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP1.rc new file mode 100644 index 000000000000..ce2690d6937b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP2.rc new file mode 100644 index 000000000000..4e9e1bb95026 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP2.rc @@ -0,0 +1,15 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20041125 210000 +20041126 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case26/ExtData.rc new file mode 100644 index 000000000000..10b7735216ec --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/ExtData.rc @@ -0,0 +1,13 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR3Dc NA N N 0 none none VAR3Dc casec.%y4.nc4 +VAR3De NA N N 0 none none VAR3De casee.%y4.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY1.rc new file mode 100644 index 000000000000..d0936b060353 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY1.rc @@ -0,0 +1,31 @@ +GRID_LABELS: PC45x21-DC +:: + +PC45x21-DC.GRID_TYPE: LatLon +PC45x21-DC.IM_WORLD: 45 +PC45x21-DC.JM_WORLD: 21 +PC45x21-DC.POLE: PC +PC45x21-DC.DATELINE: DC +PC45x21-DC.LM: 3 + +#GRID_LABELS: +#:: + +COLLECTIONS: casec + casee +:: + + casec.template: '%y4.nc4', + casec.format: 'CFIO', + casec.frequency: 010000, + casec.duration: 000000 + casec.grid_label: PC45x21-DC + casec.fields: 'VAR3Dc', 'Root', + :: + casee.template: '%y4.nc4', + casee.format: 'CFIO', + casee.frequency: 010000, + casee.duration: 000000 + casee.grid_label: PC45x21-DC + casee.fields: 'VAR3De', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/README b/Tests/ExtData_Testing_Framekwork/test_cases/case26/README new file mode 100644 index 000000000000..cec787fe0882 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/README @@ -0,0 +1 @@ +Read edge + center diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case26/extdata.yaml new file mode 100644 index 000000000000..75ab030466dd --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case26/extdata.yaml @@ -0,0 +1,6 @@ +Collections: + fstreamc: {template: casec.%y4.nc4, valid_range: "2004-01-01/2005-01-01" } + fstreame: {template: casee.%y4.nc4, valid_range: "2004-01-01/2005-01-01" } +Exports: + VAR3Dc: {variable: VAR3Dc, collection: fstreamc} + VAR3De: {variable: VAR3De, collection: fstreame} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM1.rc new file mode 100644 index 000000000000..302766bebfab --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM2.rc new file mode 100644 index 000000000000..63df38ae71a5 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM2.rc @@ -0,0 +1,27 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +CLIM_YEAR: 2004 +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP1.rc new file mode 100644 index 000000000000..a75a8c48bd1e --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP1.rc @@ -0,0 +1,24 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20040115 210000 +20040215 210000 +20040315 210000 +20040415 210000 +20040515 210000 +20040615 210000 +20040715 210000 +20040815 210000 +20040915 210000 +20041015 210000 +20041115 210000 +20041215 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP2.rc new file mode 100644 index 000000000000..4dc521f63044 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP2.rc @@ -0,0 +1,15 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20071125 210000 +20071126 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case3/ExtData.rc new file mode 100644 index 000000000000..523802edf5f1 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA 2004 N 0 none none VAR2D case1.%y4%m2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY1.rc new file mode 100644 index 000000000000..0b54db8e8f25 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY1.rc @@ -0,0 +1,11 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/README b/Tests/ExtData_Testing_Framekwork/test_cases/case3/README new file mode 100644 index 000000000000..f47e12688ffc --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/README @@ -0,0 +1 @@ +Case 3, monthly files for 2004 file with 1 updates, climatology for 2007 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case3/extdata.yaml new file mode 100644 index 000000000000..1f70929226a8 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case3/extdata.yaml @@ -0,0 +1,6 @@ +Samplings: + sample_clim: {extrapolation: clim} +Collections: + fstream1: {template: "case1.%y4%m2.nc4", valid_range: "2004-01-01/2004-12-31" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, source_time: "2004-01-01/2004-12-31", sample: sample_clim} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM1.rc new file mode 100644 index 000000000000..93585c3bfdd2 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040415 210000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM2.rc new file mode 100644 index 000000000000..2271a4a04fe9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM2.rc @@ -0,0 +1,26 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040416 090000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP1.rc new file mode 100644 index 000000000000..8bc0e5df5306 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP1.rc @@ -0,0 +1,16 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20040415 210000 +20040416 210000 +20040417 210000 +20040418 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP2.rc new file mode 100644 index 000000000000..0209bfea0d8b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP2.rc @@ -0,0 +1,13 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040415 210000 + +JOB_SGMT: 00000001 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20040416 090000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case4/ExtData.rc new file mode 100644 index 000000000000..782b2e1947b9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N F0 none none VAR2D case1.%y4%m2%d2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY1.rc new file mode 100644 index 000000000000..295240a18188 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY1.rc @@ -0,0 +1,11 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2%d2.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/README b/Tests/ExtData_Testing_Framekwork/test_cases/case4/README new file mode 100644 index 000000000000..04a0216fbe17 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/README @@ -0,0 +1 @@ +Case 4, simple everytime update with daily files and last value fixed diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case4/extdata.yaml new file mode 100644 index 000000000000..191e5e0e8ca5 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case4/extdata.yaml @@ -0,0 +1,6 @@ +Samplings: + sample_fixed: {time_interpolation: false} +Collections: + fstream1: {template: case1.%y4%m2%d2.nc4} +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: sample_fixed} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM1.rc new file mode 100644 index 000000000000..93585c3bfdd2 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040415 210000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM2.rc new file mode 100644 index 000000000000..6241b66ae49c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM2.rc @@ -0,0 +1,26 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040415 210000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP1.rc new file mode 100644 index 000000000000..8bc0e5df5306 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP1.rc @@ -0,0 +1,16 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20040415 210000 +20040416 210000 +20040417 210000 +20040418 210000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP2.rc new file mode 100644 index 000000000000..0209bfea0d8b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP2.rc @@ -0,0 +1,13 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040415 210000 + +JOB_SGMT: 00000001 000000 +HEARTBEAT_DT: 3600 + +RUN_TIMES:: +20040416 090000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case5/ExtData.rc new file mode 100644 index 000000000000..1c81c28b2b97 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4%m2%d2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY1.rc new file mode 100644 index 000000000000..295240a18188 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY1.rc @@ -0,0 +1,11 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2%d2.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/README b/Tests/ExtData_Testing_Framekwork/test_cases/case5/README new file mode 100644 index 000000000000..728af50ea7e9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/README @@ -0,0 +1 @@ +Case 5, simple everytime update with daily files and time interpolation diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case5/extdata.yaml new file mode 100644 index 000000000000..a126e4e0ebf9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case5/extdata.yaml @@ -0,0 +1,4 @@ +Collections: + fstream1: {template: case1.%y4%m2%d2.nc4} +Exports: + VAR2D: {variable: VAR2D, collection: fstream1} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM1.rc new file mode 100644 index 000000000000..302766bebfab --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM2.rc new file mode 100644 index 000000000000..7c517e6969e4 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM2.rc @@ -0,0 +1,24 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D 183+0.5*(-182.0-183.0) +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP1.rc new file mode 100644 index 000000000000..b9c2d90f9891 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP1.rc @@ -0,0 +1,10 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20031231 000000 + +JOB_SGMT: 00001202 000000 +HEARTBEAT_DT: 3600 + + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP2.rc new file mode 100644 index 000000000000..845a49be478b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20061231 120000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case6/ExtData.rc new file mode 100644 index 000000000000..13d1376b6cf3 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA 2004 N 0 none none VAR2D case1.%y4%m2%d2.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY1.rc new file mode 100644 index 000000000000..7f1045a27232 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY1.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2%d2.nc4', + case1.format: 'CFIO', + case1.frequency: 240000, + case1.ref_time: 000000, + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/README b/Tests/ExtData_Testing_Framekwork/test_cases/case6/README new file mode 100644 index 000000000000..585f98aab2ca --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/README @@ -0,0 +1 @@ +Case 6, daily files for 0z for a year, fill a time at 12z on the 31st of december 2006 as a climatology diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case6/extdata.yaml new file mode 100644 index 000000000000..67a7a29a9b0d --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case6/extdata.yaml @@ -0,0 +1,6 @@ +Samplings: + sample_clim: {extrapolation: clim, source_time: "2004-01-01/2004-12-31"} +Collections: + fstream1: {template: "case1.%y4%m2%d2.nc4", valid_range: "2004-01-01/2004-12-31" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: sample_clim} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM1.rc new file mode 100644 index 000000000000..1a52adfe187d --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC900x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM2.rc new file mode 100644 index 000000000000..7bc84048f88f --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM2.rc @@ -0,0 +1,25 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D 167.0+(2.0/31.0)*(-168.0-167.0) +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP1.rc new file mode 100644 index 000000000000..77bd783ddb2e --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP1.rc @@ -0,0 +1,25 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040115 000000 +20040215 000000 +20040315 000000 +20040415 000000 +20040515 000000 +20040615 000000 +20040715 000000 +20040815 000000 +20040915 000000 +20041015 000000 +20041115 000000 +20041215 000000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP2.rc new file mode 100644 index 000000000000..af401118d4fa --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20061217 000000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case7/ExtData.rc new file mode 100644 index 000000000000..ca41e8d3a0ec --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/ExtData.rc @@ -0,0 +1,11 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. + +PrimaryExports%% +VAR2D NA Y N 0 none none VAR2D case1.2004.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY1.rc new file mode 100644 index 000000000000..a2ad110c3fde --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY1.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4.nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.duration: 000000 + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/README b/Tests/ExtData_Testing_Framekwork/test_cases/case7/README new file mode 100644 index 000000000000..fdfb854902d9 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/README @@ -0,0 +1 @@ +Case, 12-month/12 time 2004 file with an update that will wrap around the year diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case7/extdata.yaml new file mode 100644 index 000000000000..23fba59ae3ba --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case7/extdata.yaml @@ -0,0 +1,6 @@ +Samplings: + sample_clim: {source_time: "2004-01-01/2004-12-31", extrapolation: clim} +Collections: + fstream1: {template: "case1.2004.nc4", valid_range: "2004-01-01/2004-12-31" } +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: sample_clim} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM1.rc new file mode 100644 index 000000000000..93585c3bfdd2 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040415 210000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM2.rc new file mode 100644 index 000000000000..6241b66ae49c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM2.rc @@ -0,0 +1,26 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D time +:: + +REF_TIME: 20040415 210000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP1.rc new file mode 100644 index 000000000000..72cccef1f8b8 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP1.rc @@ -0,0 +1,9 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040201 210000 + +JOB_SGMT: 00000002 000000 +HEARTBEAT_DT: 1800 + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP2.rc new file mode 100644 index 000000000000..e820872c1e5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP2.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20040201 213000 + +JOB_SGMT: 00000002 000000 +HEARTBEAT_DT: 1800 + +RUN_TIMES:: +20040202 150000 +20040202 230000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case8/ExtData.rc new file mode 100644 index 000000000000..706353827d51 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N 0 none none VAR2D case1.%y4%m2%d2_%h2%n2.nc4 2004-02-01T21:30:00P0000-00-00T03:00:00 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY1.rc new file mode 100644 index 000000000000..ce09c7e5290b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY1.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: '%y4%m2%d2_%h2%n2.nc4', + case1.format: 'CFIO', + case1.frequency: 030000, + case1.ref_time: 213000 + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/README b/Tests/ExtData_Testing_Framekwork/test_cases/case8/README new file mode 100644 index 000000000000..ef8f3c8089fb --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/README @@ -0,0 +1 @@ +Case 8, simple everytime update with a new file every 3 hours relative to 003000z diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case8/extdata.yaml new file mode 100644 index 000000000000..f7fbd8500570 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case8/extdata.yaml @@ -0,0 +1,4 @@ +Collections: + fstream1: {template: case1.%y4%m2%d2_%h2%n2.nc4, ref_time: "2004-02-01T21:30:00", freq: PT3H} +Exports: + VAR2D: {variable: VAR2D, collection: fstream1} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM1.rc new file mode 100644 index 000000000000..e7caf16aa2d0 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM1.rc @@ -0,0 +1,22 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: GenerateExports + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D 17.0 +:: + +REF_TIME: 20040701 000000 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM2.rc new file mode 100644 index 000000000000..8560c27aecc7 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM2.rc @@ -0,0 +1,25 @@ +NX: 1 +NY: 1 + +Root.GRID_TYPE: LatLon +Root.GRIDNAME: DC90x45-PC +Root.LM: 3 +Root.IM_WORLD: 90 +Root.JM_WORLD: 45 +Root.POLE: 'PC' +Root.DATELINE: 'DC' + +RUN_MODE: CompareImports + +IMPORT_STATE:: +VAR2D , time , days , xy , c +:: + +EXPORT_STATE:: +VAR2D , time , days , xy , c +:: + +FILL_DEF:: +VAR2D 17.0 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP.rc new file mode 100644 index 000000000000..680d0ffa9c5b --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP.rc @@ -0,0 +1,4 @@ +CASES:: +CAP1.rc +CAP2.rc +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP1.rc new file mode 100644 index 000000000000..db6a1b1fa205 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP1.rc @@ -0,0 +1,14 @@ +ROOT_NAME: Root +ROOT_CF: AGCM1.rc +HIST_CF: HISTORY1.rc + +BEG_DATE: 20040101 210000 + +JOB_SGMT: 00001200 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20040701 000000 +:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP2.rc new file mode 100644 index 000000000000..31ad1a874601 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP2.rc @@ -0,0 +1,17 @@ +ROOT_NAME: Root +ROOT_CF: AGCM2.rc +HIST_CF: HISTORY2.rc + +BEG_DATE: 20000101 210000 + +JOB_SGMT: 00009600 000000 +HEARTBEAT_DT: 3600 + +#RUN_EXTDATA: .false. +RUN_TIMES:: +20020703 000000 +:: +#RUN_TIMES:: +#20041125 210000 +#:: + diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case9/ExtData.rc new file mode 100644 index 000000000000..b5f2a303a22e --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/ExtData.rc @@ -0,0 +1,12 @@ +#CASE_SENSITIVE_VARIABLE_NAMES: .false. +Ext_AllowExtrap: .false. +Prefetch: .true. +#DEBUG_LEVEL: 20 + +PrimaryExports%% +VAR2D NA N N - none none VAR2D case1.nc4 +%% + + +DerivedExports%% +%% diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY1.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY1.rc new file mode 100644 index 000000000000..490301aee5ea --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY1.rc @@ -0,0 +1,12 @@ +GRID_LABELS: +:: + +COLLECTIONS: case1 +:: + + case1.template: 'nc4', + case1.format: 'CFIO', + case1.frequency: 010000, + case1.duration: 000000 + case1.fields: 'VAR2D', 'Root', + :: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY2.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY2.rc new file mode 100644 index 000000000000..2895432e995a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY2.rc @@ -0,0 +1,5 @@ +GRID_LABELS: +:: + +COLLECTIONS: +:: diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/README b/Tests/ExtData_Testing_Framekwork/test_cases/case9/README new file mode 100644 index 000000000000..ffb8734bc0e7 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/README @@ -0,0 +1 @@ +Case 9 Single time file, persisted at all times diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/extdata.yaml b/Tests/ExtData_Testing_Framekwork/test_cases/case9/extdata.yaml new file mode 100644 index 000000000000..79f977377386 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case9/extdata.yaml @@ -0,0 +1,6 @@ +Samplings: + sample_closest: {extrapolation: persist_closest} +Collections: + fstream1: {template: case1.nc4} +Exports: + VAR2D: {variable: VAR2D, collection: fstream1, sample: sample_closest} diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt b/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt new file mode 100644 index 000000000000..9753d563eb9a --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt @@ -0,0 +1,25 @@ +case1 +case2 +case3 +case4 +case5 +case6 +case7 +case8 +case9 +case10 +case11 +case12 +case13 +case14 +case15 +case16 +case18 +case19 +case20 +case21 +case22 +case23 +case24 +case25 +case26 diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/test_case_descriptions.md b/Tests/ExtData_Testing_Framekwork/test_cases/test_case_descriptions.md new file mode 100644 index 000000000000..2b8b02b42681 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/test_case_descriptions.md @@ -0,0 +1,33 @@ +# Test Case Descriptions + +Note all test cases are in a numbered directory caseX, where a X is an integer and each case is described in the following list where the list number X is for folder caseX + +To run the test cases you can use the provided script and run the command: +path_to_script/run_extdatadriver_cases.py --builddir path_to_geos_install/bin --casedir path_to_cases --cases cases.txt --savelog TRUE + +1. 12-month/12 time 2004 file with 2 updates, non-climatology +2. 12-month/12 time 2004 file with 2 updates, climatology +3. monthly files for 2004 file with 1 updates, climatology for 2007 +4. simple everytime update with daily files and no time interpolation +5. simple everytime update with daily files and time interpolation +6. daily files for 0z for a year, fill a time at 12z on the 31st of december 2006 as a climatology +7. 12-month/12 time 2004 file with an update that will wrap around the year +8. simple everytime update with a new file every 3 hours relative to 003000z +9. Single time file, persisted at all times +10. Interpolation outside of data set (Harvard mode), make a multi year dataset. Define as not a climatology and ask for data after dataset time range +11. Interpolation outside of data set (Harvard mode), make a multi year dataset. Define as not a climatology and ask for data before datset time range +12. Test of case where you want to make a really coarse file in History that can not be decomposed on the default layout in the rc file. Be able to output such a file, then read back in on same grid in ExtData +13. Testing that we can take a climatology for a non-leap year and interpolate to a leap year. 12 files each with the midmonth value for 2007 (non-leap year). Interpolate to 02/29/2008 (leap year) +14. Testing that we can take a climatology for a non-leap year and interpolate to a leap year. Daily files each with 1 value for 2007 (non-leap year). Interpolate to 02/29/2008 (leap year) +15. Testing that we can take a climatology for a non-leap year and interpolate to a non-leap year. Daily files each with 1 value for 2007 (non-leap year). Interpolate to 03/29/2006 (leap year) +16. Testing that we can take a climatology for a leap year and interpolate to a non-leap year. Daily files each with 1 value for 2008 (leap year). Interpolate to 03/29/2006 15z (leap year) +17. Not used +18. Test vector regridding +19. Test set file to /dev/null +20. Make daily files for 2016. Then start on February 29th in 2020 and allow extrapolation outside of dataset a climatology +21. Test derived export to create sum of 2 variables +22. Test multiple datasets where an export uses both with with no extrapolation outside and crosses transition date +23. Test multiple datasets and treat Climatology in the first and a real-time in the 2nd +24. Test reading cubed-sphere input +25. Test reading edge variable +26. Test reading edge + cetner variables diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc b/Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc new file mode 100644 index 000000000000..1c4e1f9f2026 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc @@ -0,0 +1 @@ +USE_EXTDATA2G: .true. diff --git a/Tests/ExtData_Testing_Framekwork/test_script/.gitignore b/Tests/ExtData_Testing_Framekwork/test_script/.gitignore new file mode 100644 index 000000000000..aee1c277000c --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_script/.gitignore @@ -0,0 +1 @@ +/run_dir*/ diff --git a/Tests/ExtData_Testing_Framekwork/test_script/run_case.py b/Tests/ExtData_Testing_Framekwork/test_script/run_case.py new file mode 100755 index 000000000000..129bc9a9bb61 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_script/run_case.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +import argparse, sys, os +import subprocess as sp +import glob +import shutil +import utils + +class ExtDataCase(): + """ + """ + + def __init__(self, case_name, comm_line_args): + + self.build_dir = comm_line_args['build_dir'] + self.case_dir = comm_line_args['case_dir'] + self.case_name = case_name + self.case_path = self.case_dir+"/"+self.case_name.rstrip() + + def run(self,logfile): + + scrdir="ExtData_scratch" + orig_dir = os.getcwd() + if os.path.isdir(scrdir): + shutil.rmtree(scrdir) + os.mkdir(scrdir) + rc_files = glob.glob(self.case_path+"/*.rc") + for rc_file in rc_files: + shutil.copy(rc_file,scrdir) + yaml_files = glob.glob(self.case_path+"/*.yaml") + for yaml_file in yaml_files: + shutil.copy(yaml_file,scrdir) + os.chdir(scrdir) + + g5_mod_path = self.build_dir+"/g5_modules" + utils.source_g5_modules(g5_mod_path) + success = os.path.isfile('nproc.rc') + if success: + fproc = open('nproc.rc',"r") + nproc = fproc.readline() + nproc = nproc.rstrip() + fproc.close() + else: + nproc = "1" + + exec_path = "cat CAP1.rc " + self.case_dir+"/use_extdata2g.rc > temp.rc ;mv temp.rc CAP1.rc" + sp.call(exec_path,stdout=logfile,stderr=logfile,shell=True) + exec_path = "cat CAP2.rc " + self.case_dir+"/use_extdata2g.rc > temp.rc; mv temp.rc CAP2.rc" + sp.call(exec_path,stdout=logfile,stderr=logfile,shell=True) + + exec_path = "mpirun -np "+nproc+" "+self.build_dir+"/ExtDataDriver.x " + sp.call(exec_path,stdout=logfile,stderr=logfile,shell=True) + sp.call("~/bin/Killall ExtDataDriver.x",stdout=logfile,stderr=logfile,shell=True) + + print("finished exec of "+self.case_name.rstrip()) + success = os.path.isfile('egress') + os.chdir(orig_dir) + shutil.rmtree(scrdir) +# + if success: + return True + else: + return False + diff --git a/Tests/ExtData_Testing_Framekwork/test_script/run_extdatadriver_cases.py b/Tests/ExtData_Testing_Framekwork/test_script/run_extdatadriver_cases.py new file mode 100755 index 000000000000..6e3fc6f4fb58 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_script/run_extdatadriver_cases.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python + +import argparse, sys, os +import subprocess as sp +from run_case import ExtDataCase + +def parse_comm_args(): + + p = argparse.ArgumentParser(description='Run ExtData tester script') + + # BAS_HOM_DIR, CUR_HOM_DIR, DIFF + # ------------------------------ + p.add_argument("--builddir", dest="build_dir",help='src directory for build') + p.add_argument("--casedir", dest="case_dir",help='where cases are located') + p.add_argument("--cases", dest="cases",help='list of cases') + p.add_argument("--savelog",dest="save_log",default="false",help='save the log files for all') + + + args = vars(p.parse_args()) # vars converts to dict + + # some checks on inputs + # --------------------- + if not os.path.isdir(args['build_dir']): + raise Exception('build_dir [%s] does not exist' % args['bas']) + if not os.path.isdir(args['case_dir']): + raise Exception('case_dir [%s] does not exist' % args['bas']) + + # return opts + # ----------- + return args + + +if __name__ == "__main__": + + comm_opts = parse_comm_args() + build_dir = comm_opts['build_dir'] + case_dir = comm_opts['case_dir'] + case_path = comm_opts['cases'] + case_file = open(case_path,'r') + lines =case_file.readlines() + case_file.close() + for case in lines: + if '#' not in case: + print("running "+case.rstrip()) + this_case = ExtDataCase(case,comm_opts) + logfile=case.rstrip()+".log" + log = open(logfile,'w') + success = this_case.run(log) + log.close() + if success: + print(case.rstrip()+" passed") + if comm_opts['save_log'].lower() == "false": + os.remove(logfile) + else: + print(case.rstrip()+" failed") + diff --git a/Tests/ExtData_Testing_Framekwork/test_script/utils.py b/Tests/ExtData_Testing_Framekwork/test_script/utils.py new file mode 100644 index 000000000000..f516aac1172e --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/test_script/utils.py @@ -0,0 +1,191 @@ +#!/usr/bin/env python + +""" +# ------------------------------------------------------------------------------ +# collection of useful functions: +# +# writemsg +# get_hostname +# source_g5_modules +# ------------------------------------------------------------------------------ +""" + + +import os +import sys +import glob +import time +import shutil +import errno +import fnmatch +import subprocess as sp +import filecmp +import shlex +import distutils.spawn +import subprocess +import re + +def writemsg(str2write, fout=None, quiet=None): + """ + # -------------------------------------------------------------------------- + # write message to fout + # + # Inputs: + # str2write: (obvious) + # fout: handle of (open) output file, if None, set to sys.stdout + # -------------------------------------------------------------------------- + """ + if not fout: fout = sys.stdout + if not quiet: fout.write('%s' % str2write); fout.flush() + + + +def get_hostname(): + """ + # -------------------------------------------------------------------------- + # Return the hostname (DISCOVER, PLEIADES) + # -------------------------------------------------------------------------- + """ + + node = os.uname()[1] + if node[0:8]=='discover' or node[0:4]=='borg': + HOST = 'DISCOVER' + elif node[0:3]=='pfe' or node[0:4]=='maia' or (node[0]=='r' and node[4]=='i'): + HOST = 'PLEIADES' + elif node[-13:]=='gsfc.nasa.gov' or (node[:6]=='gs6101' + and (node[-12:]=='ndc.nasa.gov') or node[-5:]=='local'): + HOST = 'DESKTOP' + # MAT Note that the DESKTOP is a "failover" if it is gsfc + # we return DESKTOP if it matches nothing else + else: + HOST = 'DESKTOP' + #raise Exception('could not get host name from node [%s]' % node) + + return HOST + +def source_g5_modules(g5_modules, fout=None): + """ + #--------------------------------------------------------------------------- + # def source_g5_modules(g5_modules, fout): + # + # source_g5_modules is a wrapper for the csh script g5_modules. It + # queries the csh script for basedir, modules and modinit, adds basedir + # to os.environ and loads library modules + # + # Input: + # g5_modules: full path of g5_modules + # fout: handle of (open) log file, if None - set to sys.stdout + #--------------------------------------------------------------------------- + """ + + if not fout: fout = sys.stdout + + # check if g5_modules exists + # -------------------------- + if not os.path.isfile(g5_modules): + raise Exception('g5_modules does not exist') + + + # part of the command to run + # -------------------------- + cmd = ['/bin/csh', g5_modules] + + # query for basedir + # ----------------- + run = sp.Popen(cmd+['basedir'], stdout=sp.PIPE, stderr=sp.PIPE) + output = run.communicate() + rtrnCode = run.wait() + if rtrnCode != 0: + print('0:'); print(output[0]); print('1:'); print(output[1]) + raise Exception('cant query g5_modules for basedir') + #BASEDIR = output[0].strip() + BASEDIR = output[0].split('\n')[0].strip() + + + # query for modules to load + # ------------------------- + run = sp.Popen(cmd+['modules'], stdout=sp.PIPE, stderr=sp.PIPE) + output = run.communicate() + rtrnCode = run.wait() + if rtrnCode != 0: + print('0:'); print(output[0]); print('1:'); print(output[1]) + raise Exception('cant query g5_modules for modules') + #MODULES = output[0].strip().split() + MODULES = output[0].split('\n')[0].strip().split() + + #print("MATMAT MODULES: ", MODULES) + + + # query for modinit + # ----------------- + run = sp.Popen(cmd+['modinit'], stdout=sp.PIPE, stderr=sp.PIPE) + output = run.communicate() + rtrnCode = run.wait() + if rtrnCode != 0: + print('0:'); print(output[0]); print('1:'); print(output[1]) + raise Exception('cant query g5_modules for modinit') + # MODINIT = output[0].strip().replace('csh', 'python') + # For Matt, modinit query results in '/usr/share/modules/init/csh\n/usr/..' + tmpdir = output[0].split('\n')[0].strip() + newdir = tmpdir.split('/') + HOST = get_hostname() + # MAT On anvil, at least, the modules has python.py + if HOST=='PLEIADES' or HOST=='DESKTOP': + newdir[-1] = 'python.py' + else: + newdir[-1] = 'python' + MODINIT = '/'.join(newdir) + + # set BASEDIR + # ----------- + ARCH = os.uname()[0] + writemsg(' %s: Setting BASEDIR' % os.path.basename(g5_modules), fout) + os.environ['BASEDIR'] = BASEDIR # this only modifies the local environment + BASELIB = '%s/%s/lib' % (BASEDIR, ARCH) + if 'LD_LIBRARY_PATH' in os.environ: + os.environ['LD_LIBRARY_PATH'] += os.pathsep + BASELIB + else: + os.environ['LD_LIBRARY_PATH'] = BASELIB + + + # load library modules + # -------------------- + if (os.path.isfile(MODINIT)): + writemsg(' and modules.\n', fout) + + exec(open(MODINIT).read()) + module('purge') + for mod in MODULES: + module('load',mod) + + # At NAS something weird is happening with python + # if you force it to load this at the end, things work + #if HOST=='PLEIADES': + #module('load','python/2.7.15') + #module('list') + elif os.environ.get('LMOD_PKG') is not None: + writemsg(' and modules.\n', fout) + + sys.path.insert(0,os.path.join(os.environ['LMOD_PKG'], "init")) + from env_modules_python import module + + module('purge') + for mod in MODULES: + module('load',mod) + + else: + raise Exception('could not load required modules') + + # set ESMA_FC to gfortran, if needed + # ---------------------------------- + if BASEDIR.split(os.sep)[-1].split('_')[0]=='gfortran': + writemsg(' Setting ESMA_FC to gfortran\n', fout) + os.environ['ESMA_FC'] = 'gfortran' + + # set ESMA_FC to pgfortran, if needed + # ----------------------------------- + if BASEDIR.split(os.sep)[-1].split('_')[0]=='pgfortran': + writemsg(' Setting ESMA_FC to pgfortran\n', fout) + os.environ['ESMA_FC'] = 'pgfortran' + os.environ['PGI_LOCALRC'] = '/discover/swdev/mathomp4/PGILocalRC/linux86-64/17.10/bin/localrc.60300' + writemsg(' Setting PGI_LOCALRC to %s\n' % os.environ['PGI_LOCALRC'], fout) From b2ec7e2f456dd0d6520f428de229a93b5a958771 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Fri, 10 Jun 2022 14:20:35 -0400 Subject: [PATCH 32/71] remove accidental .gitignore commit --- Tests/ExtData_Testing_Framekwork/test_script/.gitignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Tests/ExtData_Testing_Framekwork/test_script/.gitignore diff --git a/Tests/ExtData_Testing_Framekwork/test_script/.gitignore b/Tests/ExtData_Testing_Framekwork/test_script/.gitignore deleted file mode 100644 index aee1c277000c..000000000000 --- a/Tests/ExtData_Testing_Framekwork/test_script/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/run_dir*/ From f11427336539e36ff6506a08b4f13179f220dac0 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Mon, 13 Jun 2022 10:35:38 -0400 Subject: [PATCH 33/71] fixed bundle io tests --- CHANGELOG.md | 1 + base/tests/CMakeLists.txt | 4 ++-- base/tests/mapl_bundleio_test.F90 | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bde3067f9929..0a0a4489f9c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Enable GCM run test in CircleCI (1-hour, no ExtData) - Added monotonic regridding option - Make availalbe to History and ExtData2G all supported regridding methods +- Fix bundleio tests ### Changed diff --git a/base/tests/CMakeLists.txt b/base/tests/CMakeLists.txt index 9e300e6d8357..83ac2cf7e2eb 100644 --- a/base/tests/CMakeLists.txt +++ b/base/tests/CMakeLists.txt @@ -53,10 +53,10 @@ ecbuild_add_executable ( set_target_properties(${TESTIO} PROPERTIES Fortran_MODULE_DIRECTORY ${MODULE_DIRECTORY}) add_test(NAME bundleio_tests_latlon - COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ${CMAKE_CURRENT_BINARY_DIR}/${TESTIO} -nx 2 -ny 1 -ogrid PC90x47-DE) + COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ${CMAKE_CURRENT_BINARY_DIR}/${TESTIO} -nx 2 -ny 1 -ogrid PC90x47-DE -o file1_ll.nc4) add_test(NAME bundleio_tests_cube - COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 6 ${MPIEXEC_PREFLAGS} ${CMAKE_CURRENT_BINARY_DIR}/${TESTIO} -nx 1 -ny 6 -ogrid PE12x72-CF) + COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 6 ${MPIEXEC_PREFLAGS} ${CMAKE_CURRENT_BINARY_DIR}/${TESTIO} -nx 1 -ny 6 -ogrid PE12x72-CF -o file_cs.nc4) add_dependencies(build-tests ${TESTIO}) diff --git a/base/tests/mapl_bundleio_test.F90 b/base/tests/mapl_bundleio_test.F90 index 771cc49f38d7..87e9e6c5c9de 100644 --- a/base/tests/mapl_bundleio_test.F90 +++ b/base/tests/mapl_bundleio_test.F90 @@ -97,6 +97,8 @@ subroutine main() case('-ny') call get_command_argument(i+1,astr) read(astr,*)ny + case('-o') + call get_command_argument(i+1,filename) end select enddo @@ -157,7 +159,6 @@ subroutine main() call MAPL_FieldBundleAdd(bundle,field,__RC__) - filename="temp_file.nc4" call newWriter%create_from_bundle(bundle,clock,filename,rc=status) _VERIFY(status) call newWriter%write_to_file(rc=status) From e3d575cfd9a2ea7649ac73c5734d502aa5d5c48e Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 13 Jun 2022 12:10:06 -0400 Subject: [PATCH 34/71] Enable bundleio tests in CI --- .circleci/config.yml | 4 ++-- .github/workflows/workflow.yml | 4 ++-- CHANGELOG.md | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 29f05869612d..940a91d38451 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -18,7 +18,7 @@ workflows: repo: MAPL mepodevelop: false run_unit_tests: true - ctest_options: "-R MAPL -LE PERFORMANCE --output-on-failure" + ctest_options: "-LE PERFORMANCE --output-on-failure" # Builds MAPL like UFS does (no FLAP and pFlogger, static) - ci/build: @@ -32,7 +32,7 @@ workflows: mepodevelop: false extra_cmake_options: "-DBUILD_WITH_FLAP=OFF -DBUILD_WITH_PFLOGGER=OFF -DBUILD_SHARED_MAPL=OFF" run_unit_tests: true - ctest_options: "-R MAPL -LE PERFORMANCE --output-on-failure" + ctest_options: "-LE PERFORMANCE --output-on-failure" # Build GEOSgcm - ci/build: diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 05fa5f62f17a..6d26a5911357 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -61,7 +61,7 @@ jobs: cd build make -j4 build-tests # skip performance tests - ctest -R MAPL -LE PERFORMANCE --output-on-failure + ctest -LE PERFORMANCE --output-on-failure build_test_mapl_intel: name: Build and Test MAPL Intel runs-on: ubuntu-latest @@ -106,4 +106,4 @@ jobs: cd build make -j4 build-tests # skip performance tests - ctest -R MAPL -LE PERFORMANCE --output-on-failure + ctest -LE PERFORMANCE --output-on-failure diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a0a4489f9c0..9864344ee9fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Update CI to work with latest GEOSadas `develop` (Uses a special branch of GEOSadas) +- Fix bundleio tests ### Added @@ -19,7 +20,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Enable GCM run test in CircleCI (1-hour, no ExtData) - Added monotonic regridding option - Make availalbe to History and ExtData2G all supported regridding methods -- Fix bundleio tests ### Changed @@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated the ESMA_cmake version to v3.16.0 - Updated GitHub Actions MAPL build tests - Added assert for missing file with ExtData2G +- Re-enable bundleio tests in CI ### Removed From 3abec6d10c89cfe6d4235567007cde3096c0d249 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 13 Jun 2022 12:53:12 -0400 Subject: [PATCH 35/71] Disable bundleio with Open MPI --- .circleci/config.yml | 27 +++++++++++++++++++++++++-- .github/workflows/workflow.yml | 10 +++++++++- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 940a91d38451..90c5f95229ff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,19 +7,42 @@ workflows: build-and-test: jobs: - # Builds MAPL in a "default" way + # Builds MAPL in a "default" way - Intel - ci/build: name: build-and-test-MAPL-on-<< matrix.compiler >> context: - docker-hub-creds matrix: parameters: - compiler: [gfortran, ifort] + compiler: [ifort] repo: MAPL mepodevelop: false run_unit_tests: true ctest_options: "-LE PERFORMANCE --output-on-failure" + # Builds MAPL in a "default" way - GNU + # + # NOTE: Currently Open MPI fails on the bundleio with: + # + # The OSC pt2pt component does not support MPI_THREAD_MULTIPLE in this release. + # Workarounds are to run on a single node, or to use a system with an RDMA + # capable network such as Infiniband. + # + # For now, we run GNU/Open MPI without the bundleio tests. Some indications that + # Open MPI 5 will not have this limitation + + - ci/build: + name: build-and-test-MAPL-on-<< matrix.compiler >> + context: + - docker-hub-creds + matrix: + parameters: + compiler: [gfortran] + repo: MAPL + mepodevelop: false + run_unit_tests: true + ctest_options: "-E bundleio -LE PERFORMANCE --output-on-failure" + # Builds MAPL like UFS does (no FLAP and pFlogger, static) - ci/build: name: build-UFS-MAPL-on-<< matrix.compiler >> diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 6d26a5911357..6b393d5260a3 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -61,7 +61,15 @@ jobs: cd build make -j4 build-tests # skip performance tests - ctest -LE PERFORMANCE --output-on-failure + # NOTE: Currently Open MPI fails on the bundleio with: + # + # The OSC pt2pt component does not support MPI_THREAD_MULTIPLE in this release. + # Workarounds are to run on a single node, or to use a system with an RDMA + # capable network such as Infiniband. + # + # For now, we run GNU/Open MPI without the bundleio tests. Some indications that + # Open MPI 5 will not have this limitation + ctest -E bundleio -LE PERFORMANCE --output-on-failure build_test_mapl_intel: name: Build and Test MAPL Intel runs-on: ubuntu-latest From 7ce5207959117c68c7f137ce23f43de55c3cc2dc Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Mon, 13 Jun 2022 16:20:47 -0400 Subject: [PATCH 36/71] fixes #1565 --- CHANGELOG.md | 1 + gridcomps/History/MAPL_HistoryGridComp.F90 | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9864344ee9fd..3da56956c14a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update CI to work with latest GEOSadas `develop` (Uses a special branch of GEOSadas) - Fix bundleio tests +- HistoryGridComp now checks if a file exists already before writing and errors out if so ### Added diff --git a/gridcomps/History/MAPL_HistoryGridComp.F90 b/gridcomps/History/MAPL_HistoryGridComp.F90 index 2076ddb621e0..a9cf19c1f9b6 100644 --- a/gridcomps/History/MAPL_HistoryGridComp.F90 +++ b/gridcomps/History/MAPL_HistoryGridComp.F90 @@ -3365,7 +3365,7 @@ subroutine Run ( gc, import, export, clock, rc ) integer :: sec ! variables for "backwards" mode - logical :: fwd + logical :: fwd, file_exists logical, allocatable :: Ignore(:) ! ErrLog vars @@ -3605,6 +3605,10 @@ subroutine Run ( gc, import, export, clock, rc ) list(n)%currentFile = filename(n) else if( list(n)%unit.eq.0 ) then + inquire (file=trim(filename(n)),exist=file_exists) + if (file_exists) then + _FAIL(trim(filename(n))//" being created for History output already exists") + end if if (list(n)%format == 'CFIO') then call list(n)%mGriddedIO%modifyTime(oClients=o_Clients,rc=status) _VERIFY(status) From f1e80eb088c9c66b809c4d9d3d6e1284670db8b8 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 14 Jun 2022 08:17:04 -0400 Subject: [PATCH 37/71] Need to stick to esmf alias for upstream reasons --- CHANGELOG.md | 3 +-- CMakeLists.txt | 4 ++-- MAPL/CMakeLists.txt | 2 +- MAPL_cfio/CMakeLists.txt | 2 +- Tests/CMakeLists.txt | 4 ++-- base/CMakeLists.txt | 4 ++-- base/tests/CMakeLists.txt | 2 +- generic/CMakeLists.txt | 2 +- gridcomps/Cap/CMakeLists.txt | 2 +- gridcomps/ExtData/CMakeLists.txt | 2 +- gridcomps/ExtData2G/CMakeLists.txt | 2 +- gridcomps/History/CMakeLists.txt | 2 +- gridcomps/Orbit/CMakeLists.txt | 2 +- griddedio/CMakeLists.txt | 4 ++-- pfunit/CMakeLists.txt | 2 +- 15 files changed, 19 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 228b84d652a7..d3d82e85db20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,9 +31,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Re-enable bundleio tests in CI - Updates for Spack support - Add `find_package(MPI)` for non-Baselibs builds - - Update all `esmf` target references in CMake to `ESMF` - - Add `esmf` alias library for `ESMF` for compatibility - Add explicit interface dependence of `MPI` for `ESMF` target + - Add `esmf` alias library for `ESMF` for compatibility ### Removed diff --git a/CMakeLists.txt b/CMakeLists.txt index 80ac13de4420..52280cbd9693 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,13 +125,13 @@ if (NOT Baselibs_FOUND) add_definitions(-DH5_HAVE_PARALLEL) endif() - if (NOT TARGET ESMF) + if (NOT TARGET esmf) find_package(ESMF MODULE REQUIRED) # ESMF as used in MAPL requires MPI target_link_libraries(ESMF INTERFACE MPI::MPI_Fortran) - # MAPL and GEOS used lowercase target due to historical reasons + # MAPL and GEOS use lowercase target due to historical reasons add_library(esmf ALIAS ESMF) endif () endif () diff --git a/MAPL/CMakeLists.txt b/MAPL/CMakeLists.txt index fe702cf53de5..f49b1d486a46 100644 --- a/MAPL/CMakeLists.txt +++ b/MAPL/CMakeLists.txt @@ -4,7 +4,7 @@ esma_set_this() esma_add_library (${this} SRCS MAPL.F90 DEPENDENCIES MAPL.base MAPL.generic MAPL.pfio MAPL_cfio_r4 MAPL.gridcomps MAPL.orbit MAPL.griddedio ${EXTDATA_TARGET} - ESMF NetCDF::NetCDF_Fortran MPI::MPI_Fortran + esmf NetCDF::NetCDF_Fortran MPI::MPI_Fortran $<$:FLAP::FLAP> TYPE ${MAPL_LIBRARY_TYPE} ) diff --git a/MAPL_cfio/CMakeLists.txt b/MAPL_cfio/CMakeLists.txt index e87b583bcd0b..e6cfd498a7f0 100644 --- a/MAPL_cfio/CMakeLists.txt +++ b/MAPL_cfio/CMakeLists.txt @@ -44,7 +44,7 @@ endif () esma_add_library (${lib} SRCS ${srcs} - DEPENDENCIES ESMF NetCDF::NetCDF_Fortran + DEPENDENCIES esmf NetCDF::NetCDF_Fortran TYPE ${LIBRARY_TYPE} ) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index eb37b886b41d..bba1dbb97aa7 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -11,7 +11,7 @@ set (srcs if (BUILD_WITH_FLAP) ecbuild_add_executable (TARGET ExtDataDriver.x SOURCES ${srcs}) - target_link_libraries (ExtDataDriver.x PRIVATE MAPL FLAP::FLAP ESMF) + target_link_libraries (ExtDataDriver.x PRIVATE MAPL FLAP::FLAP esmf) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG") target_link_libraries(ExtDataDriver.x PRIVATE OpenMP::OpenMP_Fortran) @@ -20,7 +20,7 @@ if (BUILD_WITH_FLAP) target_compile_definitions (ExtDataDriver.x PRIVATE $<$:BUILD_WITH_EXTDATA2G>) ecbuild_add_executable (TARGET pfio_MAPL_demo.x SOURCES pfio_MAPL_demo.F90) - target_link_libraries (pfio_MAPL_demo.x PRIVATE MAPL FLAP::FLAP ESMF) + target_link_libraries (pfio_MAPL_demo.x PRIVATE MAPL FLAP::FLAP esmf) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG") target_link_libraries(pfio_MAPL_demo.x PRIVATE OpenMP::OpenMP_Fortran) diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index b17ff89b4309..26ca0b229332 100644 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt @@ -59,7 +59,7 @@ set (srcs esma_add_library( ${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.profiler MAPL.pfio MAPL_cfio_r4 PFLOGGER::pflogger GFTL_SHARED::gftl-shared - ESMF NetCDF::NetCDF_Fortran MPI::MPI_Fortran + esmf NetCDF::NetCDF_Fortran MPI::MPI_Fortran TYPE ${MAPL_LIBRARY_TYPE}) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 @@ -80,7 +80,7 @@ foreach(dir ${OSX_EXTRA_LIBRARY_PATH}) target_link_libraries(${this} PUBLIC "-Xlinker -rpath -Xlinker ${dir}") endforeach() -ecbuild_add_executable (TARGET cub2latlon.x SOURCES cub2latlon_regridder.F90 DEPENDS ESMF MAPL.shared) +ecbuild_add_executable (TARGET cub2latlon.x SOURCES cub2latlon_regridder.F90 DEPENDS esmf MAPL.shared) target_link_libraries (cub2latlon.x PRIVATE ${this} MAPL.pfio ${MPI_Fortran_LIBRARIES}) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG") diff --git a/base/tests/CMakeLists.txt b/base/tests/CMakeLists.txt index a508783cb876..83ac2cf7e2eb 100644 --- a/base/tests/CMakeLists.txt +++ b/base/tests/CMakeLists.txt @@ -28,7 +28,7 @@ set (SRCS # MAPL_Initialize.F90 # ) #target_link_libraries (base_extras MAPL.shared MAPL.pfunit -# ESMF NetCDF::NetCDF_Fortran) +# esmf NetCDF::NetCDF_Fortran) add_pfunit_ctest(MAPL.base.tests TEST_SOURCES ${TEST_SRCS} diff --git a/generic/CMakeLists.txt b/generic/CMakeLists.txt index 9172d70ddaaa..643fc9bcf985 100644 --- a/generic/CMakeLists.txt +++ b/generic/CMakeLists.txt @@ -61,7 +61,7 @@ esma_add_library(${this} ) target_include_directories (${this} PUBLIC $) -target_link_libraries (${this} PUBLIC ESMF NetCDF::NetCDF_Fortran) +target_link_libraries (${this} PUBLIC esmf NetCDF::NetCDF_Fortran) if (PFUNIT_FOUND) add_subdirectory(tests EXCLUDE_FROM_ALL) diff --git a/gridcomps/Cap/CMakeLists.txt b/gridcomps/Cap/CMakeLists.txt index 3126ee2795ad..07a2fe92b3cb 100644 --- a/gridcomps/Cap/CMakeLists.txt +++ b/gridcomps/Cap/CMakeLists.txt @@ -13,7 +13,7 @@ endif() esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.profiler MAPL.history MAPL.ExtData ${EXTDATA2G_TARGET} TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran $<$:FLAP::FLAP>) target_compile_definitions (${this} PRIVATE $<$:BUILD_WITH_EXTDATA2G>) diff --git a/gridcomps/ExtData/CMakeLists.txt b/gridcomps/ExtData/CMakeLists.txt index 38922c95fd39..dbc7e032cc6d 100644 --- a/gridcomps/ExtData/CMakeLists.txt +++ b/gridcomps/ExtData/CMakeLists.txt @@ -8,7 +8,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.generic MAPL.pfio MAPL.griddedio MAPL_cfio_r4 TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 diff --git a/gridcomps/ExtData2G/CMakeLists.txt b/gridcomps/ExtData2G/CMakeLists.txt index 2d13a2a2463d..ee599479ac02 100644 --- a/gridcomps/ExtData2G/CMakeLists.txt +++ b/gridcomps/ExtData2G/CMakeLists.txt @@ -26,7 +26,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.base MAPL.generic MAPL.griddedio TYPE SHARED) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared YAFYAML::yafyaml ESMF NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared YAFYAML::yafyaml esmf NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) target_include_directories (${this} PUBLIC $) diff --git a/gridcomps/History/CMakeLists.txt b/gridcomps/History/CMakeLists.txt index ab015df5ede2..0973f096f2dc 100644 --- a/gridcomps/History/CMakeLists.txt +++ b/gridcomps/History/CMakeLists.txt @@ -8,7 +8,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.generic MAPL.profiler MAPL.griddedio TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 diff --git a/gridcomps/Orbit/CMakeLists.txt b/gridcomps/Orbit/CMakeLists.txt index 41d34c979837..b33c4f37778b 100644 --- a/gridcomps/Orbit/CMakeLists.txt +++ b/gridcomps/Orbit/CMakeLists.txt @@ -5,7 +5,7 @@ set (srcs ) esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.generic TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 diff --git a/griddedio/CMakeLists.txt b/griddedio/CMakeLists.txt index 862d98bd3bd5..44fd7a6e8336 100644 --- a/griddedio/CMakeLists.txt +++ b/griddedio/CMakeLists.txt @@ -11,7 +11,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.constants MAPL.base MAPL.pfio MAPL_cfio_r4 TYPE ${MAPL_LIBRARY_TYPE}) -target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared ESMF NetCDF::NetCDF_Fortran +target_link_libraries (${this} PUBLIC GFTL::gftl GFTL_SHARED::gftl-shared esmf NetCDF::NetCDF_Fortran PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 @@ -22,7 +22,7 @@ target_include_directories (${this} PUBLIC $ Date: Tue, 14 Jun 2022 08:42:52 -0400 Subject: [PATCH 38/71] Update comments --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52280cbd9693..8804ee877955 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,7 +131,8 @@ if (NOT Baselibs_FOUND) # ESMF as used in MAPL requires MPI target_link_libraries(ESMF INTERFACE MPI::MPI_Fortran) - # MAPL and GEOS use lowercase target due to historical reasons + # MAPL and GEOS use lowercase target due to historical reasons but + # the latest FindESMF.cmake file from ESMF produces an ESMF target. add_library(esmf ALIAS ESMF) endif () endif () From 9d2a685fd94abd352faf6c52af766c63ca8cb17e Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 14 Jun 2022 13:32:59 -0400 Subject: [PATCH 39/71] get testing framework working --- Tests/CMakeLists.txt | 1 + .../ExtData_Testing_Framekwork/CMakeLists.txt | 25 +++ .../run_extdata1g.cmake | 25 +++ .../run_extdata2g.cmake | 27 +++ .../test_cases/case21/ExtData.rc | 5 +- .../test_script/run_case.py | 64 ------ .../test_script/run_extdatadriver_cases.py | 56 ----- .../test_script/utils.py | 191 ------------------ 8 files changed, 81 insertions(+), 313 deletions(-) create mode 100644 Tests/ExtData_Testing_Framekwork/CMakeLists.txt create mode 100644 Tests/ExtData_Testing_Framekwork/run_extdata1g.cmake create mode 100644 Tests/ExtData_Testing_Framekwork/run_extdata2g.cmake delete mode 100755 Tests/ExtData_Testing_Framekwork/test_script/run_case.py delete mode 100755 Tests/ExtData_Testing_Framekwork/test_script/run_extdatadriver_cases.py delete mode 100644 Tests/ExtData_Testing_Framekwork/test_script/utils.py diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index bba1dbb97aa7..aa469a39b433 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -32,3 +32,4 @@ endif () #install(PROGRAMS ExtDataDriver.x DESTINATION bin) #install(TARGETS ExtDataDriver.x DESTINATION bin) +add_subdirectory(ExtData_Testing_Framekwork EXCLUDE_FROM_ALL) diff --git a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt new file mode 100644 index 000000000000..7e482e01eba6 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt @@ -0,0 +1,25 @@ +file(STRINGS "test_cases/cases.txt" TEST_CASES) + +foreach(TEST_CASE ${TEST_CASES}) +add_test( + NAME "ExtData1G_${TEST_CASE}" + COMMAND ${CMAKE_COMMAND} + -DTEST_CASE=${TEST_CASE} + -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} + -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} + -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata1g.cmake + ) +endforeach() + +foreach(TEST_CASE ${TEST_CASES}) +add_test( + NAME "ExtData2G_${TEST_CASE}" + COMMAND ${CMAKE_COMMAND} + -DTEST_CASE=${TEST_CASE} + -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} + -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} + -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata2g.cmake + ) +endforeach() diff --git a/Tests/ExtData_Testing_Framekwork/run_extdata1g.cmake b/Tests/ExtData_Testing_Framekwork/run_extdata1g.cmake new file mode 100644 index 000000000000..202d0aae191e --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/run_extdata1g.cmake @@ -0,0 +1,25 @@ +macro(run_case CASE) + string(RANDOM LENGTH 24 tempdir) + execute_process( + COMMAND ${CMAKE_COMMAND} -E make_directory ${tempdir} + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/test_cases/${CASE} ${tempdir} + ) + if (EXISTS "${tempdir}/nproc.rc") + file(READ "${tempdir}/nproc.rc" num_procs) + else() + set(num_procs "1") + endif() + execute_process( + COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${num_procs} ${MY_BINARY_DIR}/ExtDataDriver.x + RESULT_VARIABLE CMD_RESULT + WORKING_DIRECTORY ${tempdir} + #COMMAND_ECHO STDOUT + ) + execute_process( + COMMAND ${CMAKE_COMMAND} -E rm -rf ${tempdir} + ) + if(CMD_RESULT) + message(FATAL_ERROR "Error running ${CASE}") + endif() +endmacro() +run_case(${TEST_CASE}) diff --git a/Tests/ExtData_Testing_Framekwork/run_extdata2g.cmake b/Tests/ExtData_Testing_Framekwork/run_extdata2g.cmake new file mode 100644 index 000000000000..158ad09e1285 --- /dev/null +++ b/Tests/ExtData_Testing_Framekwork/run_extdata2g.cmake @@ -0,0 +1,27 @@ +macro(run_case CASE) + string(RANDOM LENGTH 24 tempdir) + execute_process( + COMMAND ${CMAKE_COMMAND} -E make_directory ${tempdir} + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/test_cases/${CASE} ${tempdir} + ) + if (EXISTS "${tempdir}/nproc.rc") + file(READ "${tempdir}/nproc.rc" num_procs) + else() + set(num_procs "1") + endif() + file(APPEND "${tempdir}/CAP1.rc" "USE_EXTDATA2G: .true.") + file(APPEND "${tempdir}/CAP2.rc" "USE_EXTDATA2G: .true.") + execute_process( + COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${num_procs} ${MY_BINARY_DIR}/ExtDataDriver.x + RESULT_VARIABLE CMD_RESULT + WORKING_DIRECTORY ${tempdir} + #COMMAND_ECHO STDOUT + ) + execute_process( + COMMAND ${CMAKE_COMMAND} -E rm -rf ${tempdir} + ) + if(CMD_RESULT) + message(FATAL_ERROR "Error running ${CASE}") + endif() +endmacro() +run_case(${TEST_CASE}) diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc index a45d1dd13f7f..57736ed30bef 100644 --- a/Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc +++ b/Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc @@ -4,10 +4,11 @@ Prefetch: .true. #DEBUG_LEVEL: 20 PrimaryExports%% -VAR2D NA N N 0 none none VAR2D case1.%y4.nc4 -VAR3D NA N N 0 none none VAR3D case1.%y4.nc4 +VAR1 NA N N 0 none none VAR1 case1.%y4.nc4 +VAR2 NA N N 0 none none VAR2 case1.%y4.nc4 %% DerivedExports%% +VAR2D VAR1+VAR2 0 %% diff --git a/Tests/ExtData_Testing_Framekwork/test_script/run_case.py b/Tests/ExtData_Testing_Framekwork/test_script/run_case.py deleted file mode 100755 index 129bc9a9bb61..000000000000 --- a/Tests/ExtData_Testing_Framekwork/test_script/run_case.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python - -import argparse, sys, os -import subprocess as sp -import glob -import shutil -import utils - -class ExtDataCase(): - """ - """ - - def __init__(self, case_name, comm_line_args): - - self.build_dir = comm_line_args['build_dir'] - self.case_dir = comm_line_args['case_dir'] - self.case_name = case_name - self.case_path = self.case_dir+"/"+self.case_name.rstrip() - - def run(self,logfile): - - scrdir="ExtData_scratch" - orig_dir = os.getcwd() - if os.path.isdir(scrdir): - shutil.rmtree(scrdir) - os.mkdir(scrdir) - rc_files = glob.glob(self.case_path+"/*.rc") - for rc_file in rc_files: - shutil.copy(rc_file,scrdir) - yaml_files = glob.glob(self.case_path+"/*.yaml") - for yaml_file in yaml_files: - shutil.copy(yaml_file,scrdir) - os.chdir(scrdir) - - g5_mod_path = self.build_dir+"/g5_modules" - utils.source_g5_modules(g5_mod_path) - success = os.path.isfile('nproc.rc') - if success: - fproc = open('nproc.rc',"r") - nproc = fproc.readline() - nproc = nproc.rstrip() - fproc.close() - else: - nproc = "1" - - exec_path = "cat CAP1.rc " + self.case_dir+"/use_extdata2g.rc > temp.rc ;mv temp.rc CAP1.rc" - sp.call(exec_path,stdout=logfile,stderr=logfile,shell=True) - exec_path = "cat CAP2.rc " + self.case_dir+"/use_extdata2g.rc > temp.rc; mv temp.rc CAP2.rc" - sp.call(exec_path,stdout=logfile,stderr=logfile,shell=True) - - exec_path = "mpirun -np "+nproc+" "+self.build_dir+"/ExtDataDriver.x " - sp.call(exec_path,stdout=logfile,stderr=logfile,shell=True) - sp.call("~/bin/Killall ExtDataDriver.x",stdout=logfile,stderr=logfile,shell=True) - - print("finished exec of "+self.case_name.rstrip()) - success = os.path.isfile('egress') - os.chdir(orig_dir) - shutil.rmtree(scrdir) -# - if success: - return True - else: - return False - diff --git a/Tests/ExtData_Testing_Framekwork/test_script/run_extdatadriver_cases.py b/Tests/ExtData_Testing_Framekwork/test_script/run_extdatadriver_cases.py deleted file mode 100755 index 6e3fc6f4fb58..000000000000 --- a/Tests/ExtData_Testing_Framekwork/test_script/run_extdatadriver_cases.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env python - -import argparse, sys, os -import subprocess as sp -from run_case import ExtDataCase - -def parse_comm_args(): - - p = argparse.ArgumentParser(description='Run ExtData tester script') - - # BAS_HOM_DIR, CUR_HOM_DIR, DIFF - # ------------------------------ - p.add_argument("--builddir", dest="build_dir",help='src directory for build') - p.add_argument("--casedir", dest="case_dir",help='where cases are located') - p.add_argument("--cases", dest="cases",help='list of cases') - p.add_argument("--savelog",dest="save_log",default="false",help='save the log files for all') - - - args = vars(p.parse_args()) # vars converts to dict - - # some checks on inputs - # --------------------- - if not os.path.isdir(args['build_dir']): - raise Exception('build_dir [%s] does not exist' % args['bas']) - if not os.path.isdir(args['case_dir']): - raise Exception('case_dir [%s] does not exist' % args['bas']) - - # return opts - # ----------- - return args - - -if __name__ == "__main__": - - comm_opts = parse_comm_args() - build_dir = comm_opts['build_dir'] - case_dir = comm_opts['case_dir'] - case_path = comm_opts['cases'] - case_file = open(case_path,'r') - lines =case_file.readlines() - case_file.close() - for case in lines: - if '#' not in case: - print("running "+case.rstrip()) - this_case = ExtDataCase(case,comm_opts) - logfile=case.rstrip()+".log" - log = open(logfile,'w') - success = this_case.run(log) - log.close() - if success: - print(case.rstrip()+" passed") - if comm_opts['save_log'].lower() == "false": - os.remove(logfile) - else: - print(case.rstrip()+" failed") - diff --git a/Tests/ExtData_Testing_Framekwork/test_script/utils.py b/Tests/ExtData_Testing_Framekwork/test_script/utils.py deleted file mode 100644 index f516aac1172e..000000000000 --- a/Tests/ExtData_Testing_Framekwork/test_script/utils.py +++ /dev/null @@ -1,191 +0,0 @@ -#!/usr/bin/env python - -""" -# ------------------------------------------------------------------------------ -# collection of useful functions: -# -# writemsg -# get_hostname -# source_g5_modules -# ------------------------------------------------------------------------------ -""" - - -import os -import sys -import glob -import time -import shutil -import errno -import fnmatch -import subprocess as sp -import filecmp -import shlex -import distutils.spawn -import subprocess -import re - -def writemsg(str2write, fout=None, quiet=None): - """ - # -------------------------------------------------------------------------- - # write message to fout - # - # Inputs: - # str2write: (obvious) - # fout: handle of (open) output file, if None, set to sys.stdout - # -------------------------------------------------------------------------- - """ - if not fout: fout = sys.stdout - if not quiet: fout.write('%s' % str2write); fout.flush() - - - -def get_hostname(): - """ - # -------------------------------------------------------------------------- - # Return the hostname (DISCOVER, PLEIADES) - # -------------------------------------------------------------------------- - """ - - node = os.uname()[1] - if node[0:8]=='discover' or node[0:4]=='borg': - HOST = 'DISCOVER' - elif node[0:3]=='pfe' or node[0:4]=='maia' or (node[0]=='r' and node[4]=='i'): - HOST = 'PLEIADES' - elif node[-13:]=='gsfc.nasa.gov' or (node[:6]=='gs6101' - and (node[-12:]=='ndc.nasa.gov') or node[-5:]=='local'): - HOST = 'DESKTOP' - # MAT Note that the DESKTOP is a "failover" if it is gsfc - # we return DESKTOP if it matches nothing else - else: - HOST = 'DESKTOP' - #raise Exception('could not get host name from node [%s]' % node) - - return HOST - -def source_g5_modules(g5_modules, fout=None): - """ - #--------------------------------------------------------------------------- - # def source_g5_modules(g5_modules, fout): - # - # source_g5_modules is a wrapper for the csh script g5_modules. It - # queries the csh script for basedir, modules and modinit, adds basedir - # to os.environ and loads library modules - # - # Input: - # g5_modules: full path of g5_modules - # fout: handle of (open) log file, if None - set to sys.stdout - #--------------------------------------------------------------------------- - """ - - if not fout: fout = sys.stdout - - # check if g5_modules exists - # -------------------------- - if not os.path.isfile(g5_modules): - raise Exception('g5_modules does not exist') - - - # part of the command to run - # -------------------------- - cmd = ['/bin/csh', g5_modules] - - # query for basedir - # ----------------- - run = sp.Popen(cmd+['basedir'], stdout=sp.PIPE, stderr=sp.PIPE) - output = run.communicate() - rtrnCode = run.wait() - if rtrnCode != 0: - print('0:'); print(output[0]); print('1:'); print(output[1]) - raise Exception('cant query g5_modules for basedir') - #BASEDIR = output[0].strip() - BASEDIR = output[0].split('\n')[0].strip() - - - # query for modules to load - # ------------------------- - run = sp.Popen(cmd+['modules'], stdout=sp.PIPE, stderr=sp.PIPE) - output = run.communicate() - rtrnCode = run.wait() - if rtrnCode != 0: - print('0:'); print(output[0]); print('1:'); print(output[1]) - raise Exception('cant query g5_modules for modules') - #MODULES = output[0].strip().split() - MODULES = output[0].split('\n')[0].strip().split() - - #print("MATMAT MODULES: ", MODULES) - - - # query for modinit - # ----------------- - run = sp.Popen(cmd+['modinit'], stdout=sp.PIPE, stderr=sp.PIPE) - output = run.communicate() - rtrnCode = run.wait() - if rtrnCode != 0: - print('0:'); print(output[0]); print('1:'); print(output[1]) - raise Exception('cant query g5_modules for modinit') - # MODINIT = output[0].strip().replace('csh', 'python') - # For Matt, modinit query results in '/usr/share/modules/init/csh\n/usr/..' - tmpdir = output[0].split('\n')[0].strip() - newdir = tmpdir.split('/') - HOST = get_hostname() - # MAT On anvil, at least, the modules has python.py - if HOST=='PLEIADES' or HOST=='DESKTOP': - newdir[-1] = 'python.py' - else: - newdir[-1] = 'python' - MODINIT = '/'.join(newdir) - - # set BASEDIR - # ----------- - ARCH = os.uname()[0] - writemsg(' %s: Setting BASEDIR' % os.path.basename(g5_modules), fout) - os.environ['BASEDIR'] = BASEDIR # this only modifies the local environment - BASELIB = '%s/%s/lib' % (BASEDIR, ARCH) - if 'LD_LIBRARY_PATH' in os.environ: - os.environ['LD_LIBRARY_PATH'] += os.pathsep + BASELIB - else: - os.environ['LD_LIBRARY_PATH'] = BASELIB - - - # load library modules - # -------------------- - if (os.path.isfile(MODINIT)): - writemsg(' and modules.\n', fout) - - exec(open(MODINIT).read()) - module('purge') - for mod in MODULES: - module('load',mod) - - # At NAS something weird is happening with python - # if you force it to load this at the end, things work - #if HOST=='PLEIADES': - #module('load','python/2.7.15') - #module('list') - elif os.environ.get('LMOD_PKG') is not None: - writemsg(' and modules.\n', fout) - - sys.path.insert(0,os.path.join(os.environ['LMOD_PKG'], "init")) - from env_modules_python import module - - module('purge') - for mod in MODULES: - module('load',mod) - - else: - raise Exception('could not load required modules') - - # set ESMA_FC to gfortran, if needed - # ---------------------------------- - if BASEDIR.split(os.sep)[-1].split('_')[0]=='gfortran': - writemsg(' Setting ESMA_FC to gfortran\n', fout) - os.environ['ESMA_FC'] = 'gfortran' - - # set ESMA_FC to pgfortran, if needed - # ----------------------------------- - if BASEDIR.split(os.sep)[-1].split('_')[0]=='pgfortran': - writemsg(' Setting ESMA_FC to pgfortran\n', fout) - os.environ['ESMA_FC'] = 'pgfortran' - os.environ['PGI_LOCALRC'] = '/discover/swdev/mathomp4/PGILocalRC/linux86-64/17.10/bin/localrc.60300' - writemsg(' Setting PGI_LOCALRC to %s\n' % os.environ['PGI_LOCALRC'], fout) From 536efe16bfedfab0cddd7bf266bc311c0d1d128a Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 14 Jun 2022 13:39:53 -0400 Subject: [PATCH 40/71] Add option to test either extdata1g extdata2g or both. Default extdata2g only --- .../ExtData_Testing_Framekwork/CMakeLists.txt | 49 +++++++++++-------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt index 7e482e01eba6..eae500495d38 100644 --- a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt +++ b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt @@ -1,25 +1,32 @@ file(STRINGS "test_cases/cases.txt" TEST_CASES) -foreach(TEST_CASE ${TEST_CASES}) -add_test( - NAME "ExtData1G_${TEST_CASE}" - COMMAND ${CMAKE_COMMAND} - -DTEST_CASE=${TEST_CASE} - -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} - -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} - -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin - -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata1g.cmake - ) -endforeach() +option(TEST_EXTDATA1G "Whether to text ExtData 1G in addition to 2G" OFF) +option(TEST_EXTDATA2G "Whether to text ExtData 1G in addition to 2G" ON) +if (${TEST_EXTDATA1G}) foreach(TEST_CASE ${TEST_CASES}) -add_test( - NAME "ExtData2G_${TEST_CASE}" - COMMAND ${CMAKE_COMMAND} - -DTEST_CASE=${TEST_CASE} - -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} - -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} - -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin - -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata2g.cmake - ) -endforeach() + add_test( + NAME "ExtData1G_${TEST_CASE}" + COMMAND ${CMAKE_COMMAND} + -DTEST_CASE=${TEST_CASE} + -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} + -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} + -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata1g.cmake + ) + endforeach() +endif() + +if (${TEST_EXTDATA2G}) + foreach(TEST_CASE ${TEST_CASES}) + add_test( + NAME "ExtData2G_${TEST_CASE}" + COMMAND ${CMAKE_COMMAND} + -DTEST_CASE=${TEST_CASE} + -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} + -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} + -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata2g.cmake + ) + endforeach() +endif() From 787a605916ee851da12b5c2ef98dee59dc8b2eb0 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 14 Jun 2022 14:45:08 -0400 Subject: [PATCH 41/71] add labels for big and small extdata tests --- .../ExtData_Testing_Framekwork/CMakeLists.txt | 65 +++++++++++-------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt index eae500495d38..77d40196539c 100644 --- a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt +++ b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt @@ -3,30 +3,43 @@ file(STRINGS "test_cases/cases.txt" TEST_CASES) option(TEST_EXTDATA1G "Whether to text ExtData 1G in addition to 2G" OFF) option(TEST_EXTDATA2G "Whether to text ExtData 1G in addition to 2G" ON) -if (${TEST_EXTDATA1G}) +set(cutoff "7") foreach(TEST_CASE ${TEST_CASES}) - add_test( - NAME "ExtData1G_${TEST_CASE}" - COMMAND ${CMAKE_COMMAND} - -DTEST_CASE=${TEST_CASE} - -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} - -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} - -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin - -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata1g.cmake - ) - endforeach() -endif() - -if (${TEST_EXTDATA2G}) - foreach(TEST_CASE ${TEST_CASES}) - add_test( - NAME "ExtData2G_${TEST_CASE}" - COMMAND ${CMAKE_COMMAND} - -DTEST_CASE=${TEST_CASE} - -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} - -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} - -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin - -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata2g.cmake - ) - endforeach() -endif() + if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/test_cases/${TEST_CASE}/nproc.rc) + file(READ ${CMAKE_CURRENT_LIST_DIR}/test_cases/${TEST_CASE}/nproc.rc num_procs) + else() + set(num_procs "1") + endif() + if (${TEST_EXTDATA1G}) + add_test( + NAME "ExtData1G_${TEST_CASE}" + COMMAND ${CMAKE_COMMAND} + -DTEST_CASE=${TEST_CASE} + -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} + -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} + -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata1g.cmake + if (${num_procs} LESS ${cutoff}) + set_tests_properties ("ExtData1G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA1G_SMALL_TESTS") + else() + set_tests_properties ("ExtData1G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA1G_BIG_TESTS") + endif() + ) + endif() + if (${TEST_EXTDATA2G}) + add_test( + NAME "ExtData2G_${TEST_CASE}" + COMMAND ${CMAKE_COMMAND} + -DTEST_CASE=${TEST_CASE} + -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} + -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} + -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata2g.cmake + ) + if (${num_procs} LESS ${cutoff}) + set_tests_properties ("ExtData2G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA2G_SMALL_TESTS") + else() + set_tests_properties ("ExtData2G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA2G_BIG_TESTS") + endif() + endif() +endforeach() From cca2d1bbe8aea761c6963f3a4ab736639616c10a Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 14 Jun 2022 15:04:22 -0400 Subject: [PATCH 42/71] consilidate scripts --- .../ExtData_Testing_Framekwork/CMakeLists.txt | 20 ++++++++++++--- ...{run_extdata2g.cmake => run_extdata.cmake} | 8 +++--- .../run_extdata1g.cmake | 25 ------------------- 3 files changed, 21 insertions(+), 32 deletions(-) rename Tests/ExtData_Testing_Framekwork/{run_extdata2g.cmake => run_extdata.cmake} (69%) delete mode 100644 Tests/ExtData_Testing_Framekwork/run_extdata1g.cmake diff --git a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt index 77d40196539c..ad07476f73fe 100644 --- a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt +++ b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt @@ -1,9 +1,17 @@ +# Detect if we are using Open MPI and add oversubscribe +string(REPLACE " " ";" MPI_Fortran_LIBRARY_VERSION_LIST ${MPI_Fortran_LIBRARY_VERSION_STRING}) +list(GET MPI_Fortran_LIBRARY_VERSION_LIST 0 MPI_Fortran_LIBRARY_VERSION_FIRSTWORD) +if(MPI_Fortran_LIBRARY_VERSION_FIRSTWORD MATCHES "Open") + list(APPEND MPIEXEC_PREFLAGS "-oversubscribe") +endif() + file(STRINGS "test_cases/cases.txt" TEST_CASES) -option(TEST_EXTDATA1G "Whether to text ExtData 1G in addition to 2G" OFF) -option(TEST_EXTDATA2G "Whether to text ExtData 1G in addition to 2G" ON) +option(TEST_EXTDATA1G "Test ExtData 1G" ON) +option(TEST_EXTDATA2G "Test ExtData 2G" ON) set(cutoff "7") + foreach(TEST_CASE ${TEST_CASES}) if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/test_cases/${TEST_CASE}/nproc.rc) file(READ ${CMAKE_CURRENT_LIST_DIR}/test_cases/${TEST_CASE}/nproc.rc num_procs) @@ -18,7 +26,9 @@ foreach(TEST_CASE ${TEST_CASES}) -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin - -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata1g.cmake + -DMPIEXEC_PREFLAGS=${MPIEXEC_PREFLAGS} + -DIS_EXTDATA2G=NO + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata.cmake if (${num_procs} LESS ${cutoff}) set_tests_properties ("ExtData1G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA1G_SMALL_TESTS") else() @@ -34,7 +44,9 @@ foreach(TEST_CASE ${TEST_CASES}) -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin - -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata2g.cmake + -DMPIEXEC_PREFLAGS=${MPIEXEC_PREFLAGS} + -DIS_EXTDATA2G=YES + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata.cmake ) if (${num_procs} LESS ${cutoff}) set_tests_properties ("ExtData2G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA2G_SMALL_TESTS") diff --git a/Tests/ExtData_Testing_Framekwork/run_extdata2g.cmake b/Tests/ExtData_Testing_Framekwork/run_extdata.cmake similarity index 69% rename from Tests/ExtData_Testing_Framekwork/run_extdata2g.cmake rename to Tests/ExtData_Testing_Framekwork/run_extdata.cmake index 158ad09e1285..a8ef919dd815 100644 --- a/Tests/ExtData_Testing_Framekwork/run_extdata2g.cmake +++ b/Tests/ExtData_Testing_Framekwork/run_extdata.cmake @@ -9,10 +9,12 @@ macro(run_case CASE) else() set(num_procs "1") endif() - file(APPEND "${tempdir}/CAP1.rc" "USE_EXTDATA2G: .true.") - file(APPEND "${tempdir}/CAP2.rc" "USE_EXTDATA2G: .true.") + if (${IS_EXTDATA2G} STREQUAL "YES") + file(APPEND "${tempdir}/CAP1.rc" "USE_EXTDATA2G: .true.") + file(APPEND "${tempdir}/CAP2.rc" "USE_EXTDATA2G: .true.") + endif() execute_process( - COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${num_procs} ${MY_BINARY_DIR}/ExtDataDriver.x + COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${num_procs} ${MY_BINARY_DIR}/ExtDataDriver.x RESULT_VARIABLE CMD_RESULT WORKING_DIRECTORY ${tempdir} #COMMAND_ECHO STDOUT diff --git a/Tests/ExtData_Testing_Framekwork/run_extdata1g.cmake b/Tests/ExtData_Testing_Framekwork/run_extdata1g.cmake deleted file mode 100644 index 202d0aae191e..000000000000 --- a/Tests/ExtData_Testing_Framekwork/run_extdata1g.cmake +++ /dev/null @@ -1,25 +0,0 @@ -macro(run_case CASE) - string(RANDOM LENGTH 24 tempdir) - execute_process( - COMMAND ${CMAKE_COMMAND} -E make_directory ${tempdir} - COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/test_cases/${CASE} ${tempdir} - ) - if (EXISTS "${tempdir}/nproc.rc") - file(READ "${tempdir}/nproc.rc" num_procs) - else() - set(num_procs "1") - endif() - execute_process( - COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${num_procs} ${MY_BINARY_DIR}/ExtDataDriver.x - RESULT_VARIABLE CMD_RESULT - WORKING_DIRECTORY ${tempdir} - #COMMAND_ECHO STDOUT - ) - execute_process( - COMMAND ${CMAKE_COMMAND} -E rm -rf ${tempdir} - ) - if(CMD_RESULT) - message(FATAL_ERROR "Error running ${CASE}") - endif() -endmacro() -run_case(${TEST_CASE}) From c4b61ad4cd447fa7d8c24fbb75fceefda2c997e1 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 14 Jun 2022 15:04:56 -0400 Subject: [PATCH 43/71] remove file --- Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc b/Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc deleted file mode 100644 index 1c4e1f9f2026..000000000000 --- a/Tests/ExtData_Testing_Framekwork/test_cases/use_extdata2g.rc +++ /dev/null @@ -1 +0,0 @@ -USE_EXTDATA2G: .true. From 5eb24e5586a384097190a30416cfd008196313f6 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 14 Jun 2022 16:19:29 -0400 Subject: [PATCH 44/71] more updates --- Tests/ExtData_Testing_Framekwork/run_extdata.cmake | 5 +++-- Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc diff --git a/Tests/ExtData_Testing_Framekwork/run_extdata.cmake b/Tests/ExtData_Testing_Framekwork/run_extdata.cmake index a8ef919dd815..48986e47d042 100644 --- a/Tests/ExtData_Testing_Framekwork/run_extdata.cmake +++ b/Tests/ExtData_Testing_Framekwork/run_extdata.cmake @@ -5,7 +5,8 @@ macro(run_case CASE) COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/test_cases/${CASE} ${tempdir} ) if (EXISTS "${tempdir}/nproc.rc") - file(READ "${tempdir}/nproc.rc" num_procs) + file(READ "${tempdir}/nproc.rc" num_procs_temp) + string(STRIP ${num_procs_temp} num_procs) else() set(num_procs "1") endif() @@ -14,7 +15,7 @@ macro(run_case CASE) file(APPEND "${tempdir}/CAP2.rc" "USE_EXTDATA2G: .true.") endif() execute_process( - COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${num_procs} ${MY_BINARY_DIR}/ExtDataDriver.x + COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${num_procs} ${MPIEXEC_PREFLAGS} ${MY_BINARY_DIR}/ExtDataDriver.x RESULT_VARIABLE CMD_RESULT WORKING_DIRECTORY ${tempdir} #COMMAND_ECHO STDOUT diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc b/Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc deleted file mode 100644 index d00491fd7e5b..000000000000 --- a/Tests/ExtData_Testing_Framekwork/test_cases/case18/nproc.rc +++ /dev/null @@ -1 +0,0 @@ -1 From ae418751ceee386d46421f651da659465925c1bb Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 14 Jun 2022 16:29:58 -0400 Subject: [PATCH 45/71] only add tests for ExtData if ExtDataDriver.x is built --- Tests/CMakeLists.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index aa469a39b433..92e184d8a5d3 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -26,10 +26,6 @@ if (BUILD_WITH_FLAP) target_link_libraries(pfio_MAPL_demo.x PRIVATE OpenMP::OpenMP_Fortran) endif () set_target_properties(pfio_MAPL_demo.x PROPERTIES Fortran_MODULE_DIRECTORY ${MODULE_DIRECTORY}) + add_subdirectory(ExtData_Testing_Framekwork EXCLUDE_FROM_ALL) endif () - -#install(PROGRAMS ExtDataDriver.x DESTINATION bin) -#install(TARGETS ExtDataDriver.x DESTINATION bin) - -add_subdirectory(ExtData_Testing_Framekwork EXCLUDE_FROM_ALL) From 2bc465dd8bca1393eef1b2739d345d5bdb06f4c7 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Tue, 14 Jun 2022 16:59:58 -0400 Subject: [PATCH 46/71] remove curlies --- Tests/ExtData_Testing_Framekwork/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt index ad07476f73fe..e4a96ca2f4c5 100644 --- a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt +++ b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt @@ -18,7 +18,7 @@ foreach(TEST_CASE ${TEST_CASES}) else() set(num_procs "1") endif() - if (${TEST_EXTDATA1G}) + if (TEST_EXTDATA1G) add_test( NAME "ExtData1G_${TEST_CASE}" COMMAND ${CMAKE_COMMAND} @@ -36,7 +36,7 @@ foreach(TEST_CASE ${TEST_CASES}) endif() ) endif() - if (${TEST_EXTDATA2G}) + if (TEST_EXTDATA2G) add_test( NAME "ExtData2G_${TEST_CASE}" COMMAND ${CMAKE_COMMAND} From f69e2730d2166a56bf0a5e76050741f3ad677d20 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 15 Jun 2022 09:51:29 -0400 Subject: [PATCH 47/71] remove case 12 from cases.txt as that is beyond resourses currently available in CI --- Tests/ExtData_Testing_Framekwork/test_cases/cases.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt b/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt index 9753d563eb9a..909a208a63eb 100644 --- a/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt +++ b/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt @@ -9,7 +9,6 @@ case8 case9 case10 case11 -case12 case13 case14 case15 From f92952d4d33ee04ff60fefeff09a0eb1391416ef Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 15 Jun 2022 10:30:57 -0400 Subject: [PATCH 48/71] update circle ci --- .circleci/config.yml | 2 +- .../ExtData_Testing_Framekwork/CMakeLists.txt | 68 +++++++++---------- .../test_cases/cases.txt | 1 + 3 files changed, 33 insertions(+), 38 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 90c5f95229ff..23bbafe89dc6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -18,7 +18,7 @@ workflows: repo: MAPL mepodevelop: false run_unit_tests: true - ctest_options: "-LE PERFORMANCE --output-on-failure" + ctest_options: "-LE 'PERFORMANCE|EXTDATA1G_BIG_TESTS|EXTDATA2G_BIG_TESTS' --output-on-failure" # Builds MAPL in a "default" way - GNU # diff --git a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt index e4a96ca2f4c5..a91051be6019 100644 --- a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt +++ b/Tests/ExtData_Testing_Framekwork/CMakeLists.txt @@ -7,9 +7,6 @@ endif() file(STRINGS "test_cases/cases.txt" TEST_CASES) -option(TEST_EXTDATA1G "Test ExtData 1G" ON) -option(TEST_EXTDATA2G "Test ExtData 2G" ON) - set(cutoff "7") foreach(TEST_CASE ${TEST_CASES}) @@ -18,40 +15,37 @@ foreach(TEST_CASE ${TEST_CASES}) else() set(num_procs "1") endif() - if (TEST_EXTDATA1G) - add_test( - NAME "ExtData1G_${TEST_CASE}" - COMMAND ${CMAKE_COMMAND} - -DTEST_CASE=${TEST_CASE} - -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} - -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} - -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin - -DMPIEXEC_PREFLAGS=${MPIEXEC_PREFLAGS} - -DIS_EXTDATA2G=NO - -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata.cmake - if (${num_procs} LESS ${cutoff}) - set_tests_properties ("ExtData1G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA1G_SMALL_TESTS") - else() - set_tests_properties ("ExtData1G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA1G_BIG_TESTS") - endif() - ) + add_test( + NAME "ExtData1G_${TEST_CASE}" + COMMAND ${CMAKE_COMMAND} + -DTEST_CASE=${TEST_CASE} + -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} + -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} + -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin + -DMPIEXEC_PREFLAGS=${MPIEXEC_PREFLAGS} + -DIS_EXTDATA2G=NO + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata.cmake + ) + if (${num_procs} LESS ${cutoff}) + set_tests_properties ("ExtData1G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA1G_SMALL_TESTS") + else() + set_tests_properties ("ExtData1G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA1G_BIG_TESTS") endif() - if (TEST_EXTDATA2G) - add_test( - NAME "ExtData2G_${TEST_CASE}" - COMMAND ${CMAKE_COMMAND} - -DTEST_CASE=${TEST_CASE} - -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} - -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} - -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin - -DMPIEXEC_PREFLAGS=${MPIEXEC_PREFLAGS} - -DIS_EXTDATA2G=YES - -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata.cmake - ) - if (${num_procs} LESS ${cutoff}) - set_tests_properties ("ExtData2G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA2G_SMALL_TESTS") - else() - set_tests_properties ("ExtData2G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA2G_BIG_TESTS") - endif() + + add_test( + NAME "ExtData2G_${TEST_CASE}" + COMMAND ${CMAKE_COMMAND} + -DTEST_CASE=${TEST_CASE} + -DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE} + -DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG} + -DMY_BINARY_DIR=${CMAKE_BINARY_DIR}/bin + -DMPIEXEC_PREFLAGS=${MPIEXEC_PREFLAGS} + -DIS_EXTDATA2G=YES + -P ${CMAKE_CURRENT_SOURCE_DIR}/run_extdata.cmake + ) + if (${num_procs} LESS ${cutoff}) + set_tests_properties ("ExtData2G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA2G_SMALL_TESTS") + else() + set_tests_properties ("ExtData2G_${TEST_CASE}" PROPERTIES LABELS "EXTDATA2G_BIG_TESTS") endif() endforeach() diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt b/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt index 909a208a63eb..9753d563eb9a 100644 --- a/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt +++ b/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt @@ -9,6 +9,7 @@ case8 case9 case10 case11 +case12 case13 case14 case15 From 84ccfdd036a4fac037e222fd0a0913ec2e5f2581 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 15 Jun 2022 10:32:25 -0400 Subject: [PATCH 49/71] fix directory name --- Tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 92e184d8a5d3..216bcf16855f 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -26,6 +26,6 @@ if (BUILD_WITH_FLAP) target_link_libraries(pfio_MAPL_demo.x PRIVATE OpenMP::OpenMP_Fortran) endif () set_target_properties(pfio_MAPL_demo.x PROPERTIES Fortran_MODULE_DIRECTORY ${MODULE_DIRECTORY}) - add_subdirectory(ExtData_Testing_Framekwork EXCLUDE_FROM_ALL) + add_subdirectory(ExtData_Testing_Framework EXCLUDE_FROM_ALL) endif () From 516e9dedc12696562c9a70b6569956993d5c2d66 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 15 Jun 2022 10:32:43 -0400 Subject: [PATCH 50/71] renamed --- .../CMakeLists.txt | 0 .../run_extdata.cmake | 0 .../test_cases/case1/AGCM1.rc | 0 .../test_cases/case1/AGCM2.rc | 0 .../test_cases/case1/CAP.rc | 0 .../test_cases/case1/CAP1.rc | 0 .../test_cases/case1/CAP2.rc | 0 .../test_cases/case1/ExtData.rc | 0 .../test_cases/case1/HISTORY1.rc | 0 .../test_cases/case1/HISTORY2.rc | 0 .../test_cases/case1/README | 0 .../test_cases/case1/extdata.yaml | 0 .../test_cases/case10/AGCM1.rc | 0 .../test_cases/case10/AGCM2.rc | 0 .../test_cases/case10/CAP.rc | 0 .../test_cases/case10/CAP1.rc | 0 .../test_cases/case10/CAP2.rc | 0 .../test_cases/case10/ExtData.rc | 0 .../test_cases/case10/HISTORY1.rc | 0 .../test_cases/case10/HISTORY2.rc | 0 .../test_cases/case10/README | 0 .../test_cases/case10/extdata.yaml | 0 .../test_cases/case11/AGCM1.rc | 0 .../test_cases/case11/AGCM2.rc | 0 .../test_cases/case11/CAP.rc | 0 .../test_cases/case11/CAP1.rc | 0 .../test_cases/case11/CAP2.rc | 0 .../test_cases/case11/ExtData.rc | 0 .../test_cases/case11/HISTORY1.rc | 0 .../test_cases/case11/HISTORY2.rc | 0 .../test_cases/case11/README | 0 .../test_cases/case11/extdata.yaml | 0 .../test_cases/case12/AGCM1.rc | 0 .../test_cases/case12/AGCM2.rc | 0 .../test_cases/case12/CAP.rc | 0 .../test_cases/case12/CAP1.rc | 0 .../test_cases/case12/CAP2.rc | 0 .../test_cases/case12/ExtData.rc | 0 .../test_cases/case12/HISTORY1.rc | 0 .../test_cases/case12/HISTORY2.rc | 0 .../test_cases/case12/README | 0 .../test_cases/case12/extdata.yaml | 0 .../test_cases/case12/nproc.rc | 0 .../test_cases/case13/AGCM1.rc | 0 .../test_cases/case13/AGCM2.rc | 0 .../test_cases/case13/CAP.rc | 0 .../test_cases/case13/CAP1.rc | 0 .../test_cases/case13/CAP2.rc | 0 .../test_cases/case13/ExtData.rc | 0 .../test_cases/case13/HISTORY1.rc | 0 .../test_cases/case13/HISTORY2.rc | 0 .../test_cases/case13/README | 0 .../test_cases/case13/extdata.yaml | 0 .../test_cases/case14/AGCM1.rc | 0 .../test_cases/case14/AGCM2.rc | 0 .../test_cases/case14/CAP.rc | 0 .../test_cases/case14/CAP1.rc | 0 .../test_cases/case14/CAP2.rc | 0 .../test_cases/case14/ExtData.rc | 0 .../test_cases/case14/HISTORY1.rc | 0 .../test_cases/case14/HISTORY2.rc | 0 .../test_cases/case14/README | 0 .../test_cases/case14/extdata.yaml | 0 .../test_cases/case15/AGCM1.rc | 0 .../test_cases/case15/AGCM2.rc | 0 .../test_cases/case15/CAP.rc | 0 .../test_cases/case15/CAP1.rc | 0 .../test_cases/case15/CAP2.rc | 0 .../test_cases/case15/ExtData.rc | 0 .../test_cases/case15/HISTORY1.rc | 0 .../test_cases/case15/HISTORY2.rc | 0 .../test_cases/case15/README | 0 .../test_cases/case15/extdata.yaml | 0 .../test_cases/case16/AGCM1.rc | 0 .../test_cases/case16/AGCM2.rc | 0 .../test_cases/case16/CAP.rc | 0 .../test_cases/case16/CAP1.rc | 0 .../test_cases/case16/CAP2.rc | 0 .../test_cases/case16/ExtData.rc | 0 .../test_cases/case16/HISTORY1.rc | 0 .../test_cases/case16/HISTORY2.rc | 0 .../test_cases/case16/README | 0 .../test_cases/case16/extdata.yaml | 0 .../test_cases/case18/AGCM1.rc | 0 .../test_cases/case18/AGCM2.rc | 0 .../test_cases/case18/CAP.rc | 0 .../test_cases/case18/CAP1.rc | 0 .../test_cases/case18/CAP2.rc | 0 .../test_cases/case18/ExtData.rc | 0 .../test_cases/case18/HISTORY1.rc | 0 .../test_cases/case18/HISTORY2.rc | 0 .../test_cases/case18/README | 0 .../test_cases/case18/extdata.yaml | 0 .../test_cases/case19/AGCM1.rc | 0 .../test_cases/case19/CAP.rc | 0 .../test_cases/case19/CAP1.rc | 0 .../test_cases/case19/ExtData.rc | 0 .../test_cases/case19/HISTORY1.rc | 0 .../test_cases/case19/README | 0 .../test_cases/case19/extdata.yaml | 0 .../test_cases/case2/AGCM1.rc | 0 .../test_cases/case2/AGCM2.rc | 0 .../test_cases/case2/CAP.rc | 0 .../test_cases/case2/CAP1.rc | 0 .../test_cases/case2/CAP2.rc | 0 .../test_cases/case2/ExtData.rc | 0 .../test_cases/case2/HISTORY1.rc | 0 .../test_cases/case2/HISTORY2.rc | 0 .../test_cases/case2/README | 0 .../test_cases/case2/extdata.yaml | 0 .../test_cases/case20/AGCM1.rc | 0 .../test_cases/case20/AGCM2.rc | 0 .../test_cases/case20/CAP.rc | 0 .../test_cases/case20/CAP1.rc | 0 .../test_cases/case20/CAP2.rc | 0 .../test_cases/case20/ExtData.rc | 0 .../test_cases/case20/HISTORY1.rc | 0 .../test_cases/case20/HISTORY2.rc | 0 .../test_cases/case20/README | 0 .../test_cases/case20/extdata.yaml | 0 .../test_cases/case21/AGCM1.rc | 0 .../test_cases/case21/AGCM2.rc | 0 .../test_cases/case21/CAP.rc | 0 .../test_cases/case21/CAP1.rc | 0 .../test_cases/case21/CAP2.rc | 0 .../test_cases/case21/ExtData.rc | 0 .../test_cases/case21/HISTORY1.rc | 0 .../test_cases/case21/HISTORY2.rc | 0 .../test_cases/case21/README | 0 .../test_cases/case21/extdata.yaml | 0 .../test_cases/case22/AGCM1.rc | 0 .../test_cases/case22/AGCM2.rc | 0 .../test_cases/case22/AGCM3.rc | 0 .../test_cases/case22/CAP.rc | 0 .../test_cases/case22/CAP1.rc | 0 .../test_cases/case22/CAP2.rc | 0 .../test_cases/case22/CAP3.rc | 0 .../test_cases/case22/ExtData.rc | 0 .../test_cases/case22/HISTORY1.rc | 0 .../test_cases/case22/HISTORY2.rc | 0 .../test_cases/case22/HISTORY3.rc | 0 .../test_cases/case22/README | 0 .../test_cases/case22/case1.rcx | 0 .../test_cases/case22/case2.rcx | 0 .../test_cases/case22/egress | 0 .../test_cases/case22/extdata.yaml | 0 .../test_cases/case22/warnings_and_errors.log | 0 .../test_cases/case23/AGCM1.rc | 0 .../test_cases/case23/AGCM2.rc | 0 .../test_cases/case23/AGCM3.rc | 0 .../test_cases/case23/CAP.rc | 0 .../test_cases/case23/CAP1.rc | 0 .../test_cases/case23/CAP2.rc | 0 .../test_cases/case23/CAP3.rc | 0 .../test_cases/case23/ExtData.rc | 0 .../test_cases/case23/HISTORY1.rc | 0 .../test_cases/case23/HISTORY2.rc | 0 .../test_cases/case23/HISTORY3.rc | 0 .../test_cases/case23/README | 0 .../test_cases/case23/extdata.yaml | 0 .../test_cases/case24/AGCM1.rc | 0 .../test_cases/case24/AGCM2.rc | 0 .../test_cases/case24/CAP.rc | 0 .../test_cases/case24/CAP1.rc | 0 .../test_cases/case24/CAP2.rc | 0 .../test_cases/case24/ExtData.rc | 0 .../test_cases/case24/HISTORY1.rc | 0 .../test_cases/case24/HISTORY2.rc | 0 .../test_cases/case24/README | 0 .../test_cases/case24/extdata.yaml | 0 .../test_cases/case24/nproc.rc | 0 .../test_cases/case25/AGCM1.rc | 0 .../test_cases/case25/AGCM2.rc | 0 .../test_cases/case25/CAP.rc | 0 .../test_cases/case25/CAP1.rc | 0 .../test_cases/case25/CAP2.rc | 0 .../test_cases/case25/ExtData.rc | 0 .../test_cases/case25/HISTORY1.rc | 0 .../test_cases/case25/HISTORY2.rc | 0 .../test_cases/case25/README | 0 .../test_cases/case25/extdata.yaml | 0 .../test_cases/case26/AGCM1.rc | 0 .../test_cases/case26/AGCM2.rc | 0 .../test_cases/case26/CAP.rc | 0 .../test_cases/case26/CAP1.rc | 0 .../test_cases/case26/CAP2.rc | 0 .../test_cases/case26/ExtData.rc | 0 .../test_cases/case26/HISTORY1.rc | 0 .../test_cases/case26/HISTORY2.rc | 0 .../test_cases/case26/README | 0 .../test_cases/case26/extdata.yaml | 0 .../test_cases/case3/AGCM1.rc | 0 .../test_cases/case3/AGCM2.rc | 0 .../test_cases/case3/CAP.rc | 0 .../test_cases/case3/CAP1.rc | 0 .../test_cases/case3/CAP2.rc | 0 .../test_cases/case3/ExtData.rc | 0 .../test_cases/case3/HISTORY1.rc | 0 .../test_cases/case3/HISTORY2.rc | 0 .../test_cases/case3/README | 0 .../test_cases/case3/extdata.yaml | 0 .../test_cases/case4/AGCM1.rc | 0 .../test_cases/case4/AGCM2.rc | 0 .../test_cases/case4/CAP.rc | 0 .../test_cases/case4/CAP1.rc | 0 .../test_cases/case4/CAP2.rc | 0 .../test_cases/case4/ExtData.rc | 0 .../test_cases/case4/HISTORY1.rc | 0 .../test_cases/case4/HISTORY2.rc | 0 .../test_cases/case4/README | 0 .../test_cases/case4/extdata.yaml | 0 .../test_cases/case5/AGCM1.rc | 0 .../test_cases/case5/AGCM2.rc | 0 .../test_cases/case5/CAP.rc | 0 .../test_cases/case5/CAP1.rc | 0 .../test_cases/case5/CAP2.rc | 0 .../test_cases/case5/ExtData.rc | 0 .../test_cases/case5/HISTORY1.rc | 0 .../test_cases/case5/HISTORY2.rc | 0 .../test_cases/case5/README | 0 .../test_cases/case5/extdata.yaml | 0 .../test_cases/case6/AGCM1.rc | 0 .../test_cases/case6/AGCM2.rc | 0 .../test_cases/case6/CAP.rc | 0 .../test_cases/case6/CAP1.rc | 0 .../test_cases/case6/CAP2.rc | 0 .../test_cases/case6/ExtData.rc | 0 .../test_cases/case6/HISTORY1.rc | 0 .../test_cases/case6/HISTORY2.rc | 0 .../test_cases/case6/README | 0 .../test_cases/case6/extdata.yaml | 0 .../test_cases/case7/AGCM1.rc | 0 .../test_cases/case7/AGCM2.rc | 0 .../test_cases/case7/CAP.rc | 0 .../test_cases/case7/CAP1.rc | 0 .../test_cases/case7/CAP2.rc | 0 .../test_cases/case7/ExtData.rc | 0 .../test_cases/case7/HISTORY1.rc | 0 .../test_cases/case7/HISTORY2.rc | 0 .../test_cases/case7/README | 0 .../test_cases/case7/extdata.yaml | 0 .../test_cases/case8/AGCM1.rc | 0 .../test_cases/case8/AGCM2.rc | 0 .../test_cases/case8/CAP.rc | 0 .../test_cases/case8/CAP1.rc | 0 .../test_cases/case8/CAP2.rc | 0 .../test_cases/case8/ExtData.rc | 0 .../test_cases/case8/HISTORY1.rc | 0 .../test_cases/case8/HISTORY2.rc | 0 .../test_cases/case8/README | 0 .../test_cases/case8/extdata.yaml | 0 .../test_cases/case9/AGCM1.rc | 0 .../test_cases/case9/AGCM2.rc | 0 .../test_cases/case9/CAP.rc | 0 .../test_cases/case9/CAP1.rc | 0 .../test_cases/case9/CAP2.rc | 0 .../test_cases/case9/ExtData.rc | 0 .../test_cases/case9/HISTORY1.rc | 0 .../test_cases/case9/HISTORY2.rc | 0 .../test_cases/case9/README | 0 .../test_cases/case9/extdata.yaml | 0 .../test_cases/cases.txt | 0 .../test_cases/test_case_descriptions.md | 0 263 files changed, 0 insertions(+), 0 deletions(-) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/CMakeLists.txt (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/run_extdata.cmake (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case1/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case10/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case11/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case12/nproc.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case13/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case14/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case15/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case16/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case18/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case19/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case19/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case19/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case19/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case19/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case19/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case19/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case2/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case20/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case21/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/AGCM3.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/CAP3.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/HISTORY3.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/case1.rcx (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/case2.rcx (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/egress (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case22/warnings_and_errors.log (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/AGCM3.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/CAP3.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/HISTORY3.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case23/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case24/nproc.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case25/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case26/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case3/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case4/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case5/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case6/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case7/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case8/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/AGCM1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/AGCM2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/CAP.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/CAP1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/CAP2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/ExtData.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/HISTORY1.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/HISTORY2.rc (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/README (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/case9/extdata.yaml (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/cases.txt (100%) rename Tests/{ExtData_Testing_Framekwork => ExtData_Testing_Framework}/test_cases/test_case_descriptions.md (100%) diff --git a/Tests/ExtData_Testing_Framekwork/CMakeLists.txt b/Tests/ExtData_Testing_Framework/CMakeLists.txt similarity index 100% rename from Tests/ExtData_Testing_Framekwork/CMakeLists.txt rename to Tests/ExtData_Testing_Framework/CMakeLists.txt diff --git a/Tests/ExtData_Testing_Framekwork/run_extdata.cmake b/Tests/ExtData_Testing_Framework/run_extdata.cmake similarity index 100% rename from Tests/ExtData_Testing_Framekwork/run_extdata.cmake rename to Tests/ExtData_Testing_Framework/run_extdata.cmake diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case1/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case1/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case1/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case1/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case1/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case1/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case1/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case1/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case1/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case1/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case1/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case1/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case1/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case1/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case1/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case1/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/README b/Tests/ExtData_Testing_Framework/test_cases/case1/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/README rename to Tests/ExtData_Testing_Framework/test_cases/case1/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case1/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case1/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case1/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case1/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case10/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case10/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case10/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case10/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case10/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case10/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case10/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case10/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case10/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case10/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case10/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case10/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case10/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case10/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case10/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case10/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/README b/Tests/ExtData_Testing_Framework/test_cases/case10/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/README rename to Tests/ExtData_Testing_Framework/test_cases/case10/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case10/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case10/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case10/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case10/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case11/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case11/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case11/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case11/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case11/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case11/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case11/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case11/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case11/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case11/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case11/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case11/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case11/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case11/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case11/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case11/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/README b/Tests/ExtData_Testing_Framework/test_cases/case11/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/README rename to Tests/ExtData_Testing_Framework/test_cases/case11/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case11/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case11/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case11/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case11/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/README b/Tests/ExtData_Testing_Framework/test_cases/case12/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/README rename to Tests/ExtData_Testing_Framework/test_cases/case12/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case12/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case12/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case12/nproc.rc b/Tests/ExtData_Testing_Framework/test_cases/case12/nproc.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case12/nproc.rc rename to Tests/ExtData_Testing_Framework/test_cases/case12/nproc.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case13/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case13/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case13/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case13/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case13/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case13/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case13/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case13/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case13/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case13/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case13/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case13/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case13/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case13/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case13/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case13/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/README b/Tests/ExtData_Testing_Framework/test_cases/case13/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/README rename to Tests/ExtData_Testing_Framework/test_cases/case13/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case13/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case13/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case13/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case13/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case14/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case14/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case14/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case14/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case14/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case14/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case14/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case14/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case14/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case14/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case14/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case14/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case14/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case14/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case14/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case14/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/README b/Tests/ExtData_Testing_Framework/test_cases/case14/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/README rename to Tests/ExtData_Testing_Framework/test_cases/case14/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case14/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case14/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case14/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case14/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case15/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case15/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case15/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case15/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case15/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case15/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case15/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case15/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case15/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case15/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case15/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case15/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case15/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case15/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case15/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case15/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/README b/Tests/ExtData_Testing_Framework/test_cases/case15/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/README rename to Tests/ExtData_Testing_Framework/test_cases/case15/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case15/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case15/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case15/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case15/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case16/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case16/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case16/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case16/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case16/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case16/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case16/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case16/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case16/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case16/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case16/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case16/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case16/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case16/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case16/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case16/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/README b/Tests/ExtData_Testing_Framework/test_cases/case16/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/README rename to Tests/ExtData_Testing_Framework/test_cases/case16/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case16/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case16/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case16/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case16/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case18/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case18/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case18/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case18/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case18/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case18/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case18/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case18/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case18/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case18/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case18/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case18/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case18/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case18/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case18/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case18/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/README b/Tests/ExtData_Testing_Framework/test_cases/case18/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/README rename to Tests/ExtData_Testing_Framework/test_cases/case18/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case18/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case18/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case18/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case18/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case19/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case19/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case19/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case19/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case19/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case19/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case19/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case19/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case19/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case19/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case19/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case19/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case19/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case19/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/README b/Tests/ExtData_Testing_Framework/test_cases/case19/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case19/README rename to Tests/ExtData_Testing_Framework/test_cases/case19/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case19/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case19/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case19/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case19/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case2/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case2/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case2/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case2/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case2/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case2/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case2/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case2/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case2/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case2/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case2/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case2/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case2/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case2/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case2/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case2/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/README b/Tests/ExtData_Testing_Framework/test_cases/case2/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/README rename to Tests/ExtData_Testing_Framework/test_cases/case2/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case2/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case2/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case2/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case2/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case20/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case20/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case20/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case20/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case20/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case20/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case20/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case20/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case20/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case20/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case20/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case20/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case20/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case20/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case20/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case20/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/README b/Tests/ExtData_Testing_Framework/test_cases/case20/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/README rename to Tests/ExtData_Testing_Framework/test_cases/case20/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case20/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case20/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case20/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case20/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case21/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case21/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case21/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case21/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case21/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case21/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case21/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case21/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case21/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case21/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case21/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case21/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case21/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case21/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case21/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case21/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/README b/Tests/ExtData_Testing_Framework/test_cases/case21/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/README rename to Tests/ExtData_Testing_Framework/test_cases/case21/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case21/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case21/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case21/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case21/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM3.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/AGCM3.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/AGCM3.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/AGCM3.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP3.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/CAP3.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/CAP3.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/CAP3.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY3.rc b/Tests/ExtData_Testing_Framework/test_cases/case22/HISTORY3.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/HISTORY3.rc rename to Tests/ExtData_Testing_Framework/test_cases/case22/HISTORY3.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/README b/Tests/ExtData_Testing_Framework/test_cases/case22/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/README rename to Tests/ExtData_Testing_Framework/test_cases/case22/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/case1.rcx b/Tests/ExtData_Testing_Framework/test_cases/case22/case1.rcx similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/case1.rcx rename to Tests/ExtData_Testing_Framework/test_cases/case22/case1.rcx diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/case2.rcx b/Tests/ExtData_Testing_Framework/test_cases/case22/case2.rcx similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/case2.rcx rename to Tests/ExtData_Testing_Framework/test_cases/case22/case2.rcx diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/egress b/Tests/ExtData_Testing_Framework/test_cases/case22/egress similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/egress rename to Tests/ExtData_Testing_Framework/test_cases/case22/egress diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case22/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case22/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case22/warnings_and_errors.log b/Tests/ExtData_Testing_Framework/test_cases/case22/warnings_and_errors.log similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case22/warnings_and_errors.log rename to Tests/ExtData_Testing_Framework/test_cases/case22/warnings_and_errors.log diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM3.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/AGCM3.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/AGCM3.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/AGCM3.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP3.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/CAP3.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/CAP3.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/CAP3.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY3.rc b/Tests/ExtData_Testing_Framework/test_cases/case23/HISTORY3.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/HISTORY3.rc rename to Tests/ExtData_Testing_Framework/test_cases/case23/HISTORY3.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/README b/Tests/ExtData_Testing_Framework/test_cases/case23/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/README rename to Tests/ExtData_Testing_Framework/test_cases/case23/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case23/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case23/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case23/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case23/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/README b/Tests/ExtData_Testing_Framework/test_cases/case24/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/README rename to Tests/ExtData_Testing_Framework/test_cases/case24/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case24/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case24/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case24/nproc.rc b/Tests/ExtData_Testing_Framework/test_cases/case24/nproc.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case24/nproc.rc rename to Tests/ExtData_Testing_Framework/test_cases/case24/nproc.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case25/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case25/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case25/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case25/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case25/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case25/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case25/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case25/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case25/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case25/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case25/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case25/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case25/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case25/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case25/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case25/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/README b/Tests/ExtData_Testing_Framework/test_cases/case25/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/README rename to Tests/ExtData_Testing_Framework/test_cases/case25/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case25/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case25/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case25/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case25/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case26/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case26/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case26/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case26/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case26/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case26/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case26/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case26/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case26/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case26/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case26/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case26/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case26/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case26/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case26/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case26/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/README b/Tests/ExtData_Testing_Framework/test_cases/case26/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/README rename to Tests/ExtData_Testing_Framework/test_cases/case26/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case26/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case26/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case26/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case26/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case3/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case3/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case3/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case3/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case3/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case3/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case3/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case3/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case3/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case3/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case3/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case3/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case3/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case3/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case3/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case3/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/README b/Tests/ExtData_Testing_Framework/test_cases/case3/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/README rename to Tests/ExtData_Testing_Framework/test_cases/case3/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case3/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case3/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case3/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case3/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case4/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case4/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case4/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case4/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case4/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case4/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case4/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case4/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case4/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case4/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case4/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case4/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case4/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case4/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case4/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case4/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/README b/Tests/ExtData_Testing_Framework/test_cases/case4/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/README rename to Tests/ExtData_Testing_Framework/test_cases/case4/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case4/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case4/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case4/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case4/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case5/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case5/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case5/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case5/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case5/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case5/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case5/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case5/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case5/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case5/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case5/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case5/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case5/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case5/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case5/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case5/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/README b/Tests/ExtData_Testing_Framework/test_cases/case5/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/README rename to Tests/ExtData_Testing_Framework/test_cases/case5/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case5/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case5/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case5/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case5/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case6/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case6/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case6/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case6/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case6/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case6/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case6/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case6/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case6/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case6/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case6/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case6/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case6/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case6/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case6/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case6/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/README b/Tests/ExtData_Testing_Framework/test_cases/case6/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/README rename to Tests/ExtData_Testing_Framework/test_cases/case6/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case6/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case6/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case6/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case6/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case7/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case7/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case7/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case7/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case7/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case7/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case7/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case7/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case7/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case7/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case7/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case7/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case7/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case7/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case7/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case7/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/README b/Tests/ExtData_Testing_Framework/test_cases/case7/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/README rename to Tests/ExtData_Testing_Framework/test_cases/case7/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case7/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case7/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case7/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case7/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case8/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case8/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case8/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case8/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case8/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case8/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case8/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case8/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case8/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case8/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case8/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case8/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case8/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case8/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case8/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case8/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/README b/Tests/ExtData_Testing_Framework/test_cases/case8/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/README rename to Tests/ExtData_Testing_Framework/test_cases/case8/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case8/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case8/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case8/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case8/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM1.rc b/Tests/ExtData_Testing_Framework/test_cases/case9/AGCM1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case9/AGCM1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM2.rc b/Tests/ExtData_Testing_Framework/test_cases/case9/AGCM2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/AGCM2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case9/AGCM2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP.rc b/Tests/ExtData_Testing_Framework/test_cases/case9/CAP.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP.rc rename to Tests/ExtData_Testing_Framework/test_cases/case9/CAP.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP1.rc b/Tests/ExtData_Testing_Framework/test_cases/case9/CAP1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case9/CAP1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP2.rc b/Tests/ExtData_Testing_Framework/test_cases/case9/CAP2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/CAP2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case9/CAP2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/ExtData.rc b/Tests/ExtData_Testing_Framework/test_cases/case9/ExtData.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/ExtData.rc rename to Tests/ExtData_Testing_Framework/test_cases/case9/ExtData.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY1.rc b/Tests/ExtData_Testing_Framework/test_cases/case9/HISTORY1.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY1.rc rename to Tests/ExtData_Testing_Framework/test_cases/case9/HISTORY1.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY2.rc b/Tests/ExtData_Testing_Framework/test_cases/case9/HISTORY2.rc similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/HISTORY2.rc rename to Tests/ExtData_Testing_Framework/test_cases/case9/HISTORY2.rc diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/README b/Tests/ExtData_Testing_Framework/test_cases/case9/README similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/README rename to Tests/ExtData_Testing_Framework/test_cases/case9/README diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/case9/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case9/extdata.yaml similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/case9/extdata.yaml rename to Tests/ExtData_Testing_Framework/test_cases/case9/extdata.yaml diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/cases.txt b/Tests/ExtData_Testing_Framework/test_cases/cases.txt similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/cases.txt rename to Tests/ExtData_Testing_Framework/test_cases/cases.txt diff --git a/Tests/ExtData_Testing_Framekwork/test_cases/test_case_descriptions.md b/Tests/ExtData_Testing_Framework/test_cases/test_case_descriptions.md similarity index 100% rename from Tests/ExtData_Testing_Framekwork/test_cases/test_case_descriptions.md rename to Tests/ExtData_Testing_Framework/test_cases/test_case_descriptions.md From da39ef11135d2d6c9e326984d903bc2376ce157b Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 15 Jun 2022 10:35:35 -0400 Subject: [PATCH 51/71] more updates for ci --- .circleci/config.yml | 4 ++-- .github/workflows/workflow.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 23bbafe89dc6..c703d1ca64c7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -41,7 +41,7 @@ workflows: repo: MAPL mepodevelop: false run_unit_tests: true - ctest_options: "-E bundleio -LE PERFORMANCE --output-on-failure" + ctest_options: "-E bundleio -LE 'PERFORMANCE|EXTDATA1G_BIG_TESTS|EXTDATA2G_BIG_TESTS' --output-on-failure" # Builds MAPL like UFS does (no FLAP and pFlogger, static) - ci/build: @@ -55,7 +55,7 @@ workflows: mepodevelop: false extra_cmake_options: "-DBUILD_WITH_FLAP=OFF -DBUILD_WITH_PFLOGGER=OFF -DBUILD_SHARED_MAPL=OFF" run_unit_tests: true - ctest_options: "-LE PERFORMANCE --output-on-failure" + ctest_options: "-LE 'PERFORMANCE|EXTDATA1G_BIG_TESTS|EXTDATA2G_BIG_TESTS' --output-on-failure" # Build GEOSgcm - ci/build: diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 6b393d5260a3..9df322623204 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -69,7 +69,7 @@ jobs: # # For now, we run GNU/Open MPI without the bundleio tests. Some indications that # Open MPI 5 will not have this limitation - ctest -E bundleio -LE PERFORMANCE --output-on-failure + ctest -E bundleio -LE 'PERFORMANCE|EXTDATA1G_BIG_TESTS|EXTDATA2G_BIG_TESTS' --output-on-failure build_test_mapl_intel: name: Build and Test MAPL Intel runs-on: ubuntu-latest @@ -114,4 +114,4 @@ jobs: cd build make -j4 build-tests # skip performance tests - ctest -LE PERFORMANCE --output-on-failure + ctest -LE 'PERFORMANCE|EXTDATA1G_BIG_TESTS|EXTDATA2G_BIG_TESTS' --output-on-failure From 538b0af8ccaf851ecab5a10d8bd59b92b0cd7b0a Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Wed, 15 Jun 2022 12:58:29 -0400 Subject: [PATCH 52/71] Updates for FORD Testing --- base/tests/testbin.F90 | 2 +- base/tests/testhorz.F90 | 2 + base/tstqsat.F90 | 2 +- pfio/pfio_io_demo.F90 | 514 -------------------------------- pflogger_stub/pflogger_stub.F90 | 21 +- 5 files changed, 16 insertions(+), 525 deletions(-) delete mode 100644 pfio/pfio_io_demo.F90 diff --git a/base/tests/testbin.F90 b/base/tests/testbin.F90 index 8e7c03c9c0c5..cf9d69a843c5 100644 --- a/base/tests/testbin.F90 +++ b/base/tests/testbin.F90 @@ -1,4 +1,4 @@ - +program testbin use HorzBinMod type (HorzBinTransform) :: T diff --git a/base/tests/testhorz.F90 b/base/tests/testhorz.F90 index 67277d6c7ed2..0f0314a39334 100644 --- a/base/tests/testhorz.F90 +++ b/base/tests/testhorz.F90 @@ -1,3 +1,5 @@ +program testhorz + use MAPL_HorzTransformMod implicit none diff --git a/base/tstqsat.F90 b/base/tstqsat.F90 index b8cb4e5d1b01..871c0f895a53 100644 --- a/base/tstqsat.F90 +++ b/base/tstqsat.F90 @@ -1,4 +1,4 @@ - +program tstqsat use MAPLBase_Mod diff --git a/pfio/pfio_io_demo.F90 b/pfio/pfio_io_demo.F90 deleted file mode 100644 index bddd1ffe4943..000000000000 --- a/pfio/pfio_io_demo.F90 +++ /dev/null @@ -1,514 +0,0 @@ -!usage -!mpirun -np 8 ./pfio_collective_demo.x -nc 4 -nsi 2 -nso 2 -f1 xxx1.nc4 -f2 xxx2.nc4 -v T -s mpi -!The variable should be 4d with lavel>=20 -#include "MAPL_ErrLog.h" -#include "unused_dummy.H" - -module io_demo_CLI - use MAPL_ExceptionHandling - use pFIO_StringVectorMod - implicit none - private - - public :: CommandLineOptions - public :: process_command_line - - type CommandLineOptions - character(len=:), allocatable :: file_1, file_2 - type (StringVector) :: requested_variables - - integer :: npes_client - integer :: npes_iserver - integer :: npes_oserver - logical :: debug - character(len=:),allocatable :: server_type ! 'mpi' or 'openmp' - end type CommandLineOptions - - -contains - - ! The following procedure parses the command line to find various - ! arguments for file names, target grid resolution, etc. - subroutine process_command_line(options, rc) - type (CommandLineOptions), intent(inout) :: options - integer, optional, intent(out) :: rc - - integer :: n_args - integer :: i_arg - character(len=:), allocatable :: argument - character(len=:), allocatable :: buffer - - n_args = command_argument_count() - - i_arg = 0 - do - if (i_arg > n_args) exit - - argument = get_next_argument() - - select case (argument) - case ('-nc', '--npes_client') - buffer = get_next_argument() - _ASSERT(buffer /= '-') - read(buffer,*) options%npes_client - case ('-nsi', '--npes_iserver') - buffer = get_next_argument() - _ASSERT(buffer /= '-') - read(buffer,*) options%npes_iserver - case ('-nso', '--npes_oserver') - buffer = get_next_argument() - _ASSERT(buffer /= '-') - read(buffer,*) options%npes_oserver - case ('-f1', '--file_1') - options%file_1 = get_next_argument() - _ASSERT(options%file_1(1:1) /= '-') - case ('-f2', '--file_2') - options%file_2 = get_next_argument() - _ASSERT(options%file_2(1:1) /= '-') - case ('-v', '--var') - buffer = get_next_argument() - _ASSERT(buffer(1:1) /= '-') - options%requested_variables = parse_vars(buffer) - case ('-s', '--server_type') - options%server_type = get_next_argument() - _ASSERT(options%server_type /= '-') - case ('-d', '--debug') - options%debug = .true. - case default - ! ignore - end select - - end do - - contains - - function get_next_argument() result(argument) - character(len=:), allocatable :: argument - - integer :: length - - i_arg = i_arg + 1 - - call get_command_argument(i_arg, length=length) - allocate(character(len=length) :: argument) - call get_command_argument(i_arg, value=argument) - - end function get_next_argument - - function parse_vars(buffer) result(vars) - type (StringVector) :: vars - character(len=*), intent(in) :: buffer - - integer :: idx - character(len=1), parameter :: COMMA = ',' - character(len=:), allocatable :: string - - string = buffer // COMMA - do - if (len(string) == 0) exit - idx = index(string,COMMA) - call vars%push_back(string(1:idx-1)) - string = string(idx+1:) - end do - - end function parse_vars - - - end subroutine process_command_line - - -end module io_demo_CLI - -module FakeExtDataMod - use io_demo_CLI - use pFIO - use pFIO_StringVectorMod - use, intrinsic :: iso_fortran_env, only: REAL32 - implicit none - private - - public :: FakeExtData - - type FakeBundle - real(kind=REAL32), allocatable :: x(:,:,:,:) - integer :: request_id - end type FakeBundle - - type FakeExtData - type (ClientThread) :: i_c - type (ClientThread) :: o_c - integer, allocatable :: hist_collection_ids(:) - - character(len=:), allocatable :: file_1 - character(len=:), allocatable :: file_2 - - type (StringVector) :: vars - type (FakeBundle), allocatable :: bundle(:) - - integer :: comm - integer :: rank - integer :: npes - - integer :: nlat - integer :: nlon - - contains - procedure :: init - procedure :: run - procedure :: finalize - - end type FakeExtData - -contains - - - subroutine init(this, options, comm, d_s) - use pFIO_StringIntegerMapMod - class (FakeExtData),target, intent(inout) :: this - type (CommandLineOptions), intent(in) :: options - integer, intent(in) :: comm - class (AbstractDirectoryService), target,intent(inout) :: d_s - - integer :: ierror - type (FileMetadata) :: file_metadata - type (NetCDF4_FileFormatter) :: formatter - type (StringIntegerMap) :: dims - - this%i_c = ClientThread() - call d_s%connect_to_server('i_server', this%i_c, comm) - - this%o_c = ClientThread() - call d_s%connect_to_server('o_server', this%o_c, comm) - - - this%file_1 = options%file_1 - this%file_2 = options%file_2 - this%vars = options%requested_variables - !call this%vars%push_back('T') - !call this%vars%push_back('U') - !call this%vars%push_back('V') - - - this%comm = comm - call MPI_Comm_rank(comm,this%rank,ierror) - call MPI_Comm_size(comm,this%npes,ierror) - - allocate(this%bundle(this%vars%size())) - - call formatter%open(this%file_1, pFIO_READ) - file_metadata = formatter%read() - call formatter%close() - - dims = file_metadata%get_dimensions() - this%nlat = dims%at('lat') - this%nlon = dims%at('lon') - - allocate(this%hist_collection_ids(10)) - - end subroutine init - - subroutine run(this, step) - class (FakeExtData), target, intent(inout) :: this - integer, intent(in) :: step - - type(ArrayReference) :: ref - type(FileMetadata) :: fmd,fmd2 - Type(Variable) :: T1,T2 - - integer :: i_var,i - integer :: lat0, lat1, nlats - integer :: collection_id, file_md_id - character(len=3) :: tmp - integer :: c1,c2,num_request - integer,allocatable :: pull_ids(:,:) - integer,allocatable :: push_ids(:,:) - - lat0 = 1 + (this%rank*this%nlat)/this%npes - lat1 = (this%rank+1)*this%nlat/this%npes - nlats = (lat1 - lat0 + 1) - - ! Establish the collection - ! In a real use case the collection name would be the ExtData template. - ! But the actual name does not matter - it is just used to identify - ! a group of files that have identical metadata (except for time) - !num_request = 1000 - num_request = 3 - call system_clock(c1) - - do i = 1,num_request - tmp= '' - write(tmp,'(I3.3)') i - collection_id = this%i_c%add_ext_collection('collection-i'//tmp) - collection_id = this%o_c%add_ext_collection('collection-o'//tmp) - enddo - call system_clock(c2) - - allocate(pull_ids(this%vars%size(),num_request)) - allocate(push_ids(this%vars%size(),num_request)) - - select case (step) - case (1) ! read 1st file; prefetch 2nd - - ! call system_clock(c1) - do i_var = 1, this%vars%size() - allocate(this%bundle(i_var)%x(this%nlon,lat0:lat1,1,1)) - this%bundle(i_var)%x = -1 - ref = ArrayReference(this%bundle(i_var)%x) - - do i =1, num_request - pull_ids(i_var,i) = & - & this%i_c%collective_prefetch_data(collection_id, this%file_1, this%vars%at(i_var), ref,& - & start=[1,lat0,20,1], & - & global_start=[1,1,20,1],global_count=[this%nlon,this%nlat,1,1]) - enddo - - end do - !call system_clock(c2) - call this%i_c%done_collective_prefetch() - - do i_var = 1, this%vars%size() - do i = 1, num_request - call this%i_c%wait(pull_ids(i_var,i)) - enddo - end do - - do i_var = 1, this%vars%size() - this%bundle(i_var)%x = -1 - ref = ArrayReference(this%bundle(i_var)%x) - this%bundle(i_var)%request_id = & - & this%i_c%collective_prefetch_data(collection_id, this%file_1, this%vars%at(i_var), ref,& - & start=[1,lat0,20,1], & - & global_start=[1,1,20,1],global_count=[this%nlon,this%nlat,1,1]) - end do - call this%i_c%done_collective_prefetch() - - - case (2) ! wait for 2nd file to complete - - do i_var = 1, this%vars%size() - call this%i_c%wait(this%bundle(i_var)%request_id) - end do - -!!!!!!!!!!!!!!!!! -! individual write - call fmd%add_dimension('lon',this%nlon) - call fmd%add_dimension('lat',nlats) - call fmd%add_dimension('level',1) - call fmd%add_dimension('time',1) - T1 = Variable(type=pFIO_REAL32, dimensions='lon,lat,level,time') - call fmd%add_variable('T',T1) - this%hist_collection_ids(1) = this%o_c%add_hist_collection(fmd) - - call fmd2%add_dimension('lon',this%nlon) - call fmd2%add_dimension('lat',this%nlat) - call fmd2%add_dimension('level',1) - call fmd2%add_dimension('time',1) - T2 = Variable(type=pFIO_REAL32, dimensions='lon,lat,level,time') - call fmd2%add_variable('T',T2) - this%hist_collection_ids(2) = this%o_c%add_hist_collection(fmd2) - - file_md_id = this%hist_collection_ids(1) - write(tmp,'(I3.3)') this%rank - - do i_var = 1, this%vars%size() - - ref = ArrayReference(this%bundle(i_var)%x) - - do i =1, 1 - push_ids(i_var,i) = & - & this%o_c%stage_data(file_md_id,trim(this%file_1)//'.rank_'//tmp//'.nc4', this%vars%at(i_var), ref,& - & start=[1,lat0,20,1]) - - enddo - - end do - !call system_clock(c2) - call this%o_c%done_stage() - do i_var = 1, this%vars%size() - do i = 1, 1 - call this%o_c%wait(push_ids(i_var,i)) - enddo - end do - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! writing - file_md_id = this%hist_collection_ids(2) - - do i_var = 1, this%vars%size() - - ref = ArrayReference(this%bundle(i_var)%x) - do i =1, 1 - push_ids(i_var,i) = & - & this%o_c%collective_stage_data(file_md_id, trim(this%file_1)//'.new.nc4', this%vars%at(i_var), ref,& - & start=[1,lat0,1,1], & - & global_start=[1,1,1,1],global_count=[this%nlon,this%nlat,1,1]) - - enddo - - end do - !call system_clock(c2) - call this%o_c%done_collective_stage() - do i_var = 1, this%vars%size() - do i = 1, 1 - call this%o_c%wait(push_ids(i_var,i)) - enddo - end do - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 - end select - - end subroutine run - - - subroutine finalize(this) - class (FakeExtData), intent(inout) :: this - integer :: ierror - deallocate(this%bundle) - call Mpi_Barrier(this%comm,ierror) - print*,"iclient sent terminate signal" - call this%i_c%terminate() - call Mpi_Barrier(this%comm,ierror) - print*,"oclient sent terminate signal" - call this%o_c%terminate() - end subroutine finalize - -end module FakeExtDataMod - -program main - use, intrinsic :: iso_fortran_env, only: REAL32 - use mpi - use pFIO - use io_demo_CLI - use FakeExtDataMod - use MAPL_ExceptionHandling - implicit none - - integer :: rank, npes, ierror, provided,required - integer :: status, color, key - - class(AbstractServer),pointer :: iserver,oserver - class(AbstractDirectoryService), pointer :: d_s => null() - - type (CommandLineOptions) :: options - integer, parameter :: NO_COLOR = 0 - integer, parameter :: iSERVER_COLOR = 1 - integer, parameter :: oSERVER_COLOR = 4 - integer, parameter :: CLIENT_COLOR = 2 - integer, parameter :: BOTH_COLOR = 3 - - integer :: comm,num_threads - type (FakeExtData), target :: extData - - - required = MPI_THREAD_MULTIPLE - call MPI_init_thread(required, provided, ierror) - call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierror) - call MPI_Comm_size(MPI_COMM_WORLD, npes, ierror) - - call process_command_line(options, rc=status) - -!! sanity check - - if(options%server_type == 'openmp') then - if (required > provided) stop "provided thread is not enough for openmp" - num_threads = 10 - call omp_set_num_threads(num_threads) - endif - - d_s => get_directory_service(options%server_type) - - color = split_color(options%server_type,options%npes_iserver,options%npes_oserver) - key = 0 - - call MPI_Comm_split(MPI_COMM_WORLD, color, key, comm, ierror) - - if (color == iSERVER_COLOR .or. color == BOTH_COLOR ) then ! i_server - - iserver=>get_server(options%server_type,comm, d_s,'i_server') - print*,"start i_server" - if (color == iSERVER_COLOR ) call iserver%start() - - endif - - if (color == oSERVER_COLOR .or. color == BOTH_COLOR ) then ! o_server - - oserver=>get_server(options%server_type,comm,d_s,'o_server') - - print*,"start o_server" - if (color == oSERVER_COLOR ) call oserver%start() - - endif - - if (color == CLIENT_COLOR .or. color == BOTH_COLOR) then ! client - - call extData%init(options, comm, d_s) - call extData%run(step=1) - call extData%run(step=2) - call extData%finalize() - - end if - - call Mpi_Barrier(MPI_COMM_WORLD,ierror) - - call MPI_finalize(ierror) - -contains - - function get_directory_service(stype) result(d_s) - character(*),intent(in) :: stype - class(AbstractDirectoryService),pointer :: d_s - - allocate(d_s, source = DirectoryService(MPI_COMM_WORLD)) - - end function - - function split_color(stype,split_irank,split_orank) result(color) - character(*),intent(in) :: stype - integer,intent(in) :: split_irank - integer,intent(in) :: split_orank - integer :: color - - select case (stype) - case ('openmp','mpi') - if (rank < split_irank) then - color = iSERVER_COLOR - elseif (rank < split_orank+split_irank ) then - color = oSERVER_COLOR - else - color = CLIENT_COLOR - end if - case ('simple') - color = BOTH_COLOR - case default - stop "not known server type" - end select - - end function - - function get_server(stype,comm,d_s,port_name) result(server) - character(*),intent(in) :: stype - integer,intent(in) :: comm - class (AbstractDirectoryService), target,intent(inout) :: d_s - character(*), intent(in) :: port_name - - class(BaseServer),pointer :: server - - select case (stype) - case('mpi') - allocate(server,source=MpiServer(comm, port_name)) - call d_s%publish(PortInfo(port_name, server),server) - call d_s%connect_to_client(port_name, server) - print*,"using MpiServer" - case('openmp') -!!$ allocate(server,source=OpenmpServer(comm,d_s)) -!!$ print*,"using OpenMpServer" - case('simple') - allocate(server,source=MpiServer(comm, port_name)) - call d_s%publish(PortInfo(port_name, server), server) -! call d_s%connect_to_client(port_name, server) - print*,"using simple server" - end select - - end function - -end program main diff --git a/pflogger_stub/pflogger_stub.F90 b/pflogger_stub/pflogger_stub.F90 index dcf56379bdf9..f35cc62bf69d 100644 --- a/pflogger_stub/pflogger_stub.F90 +++ b/pflogger_stub/pflogger_stub.F90 @@ -1,5 +1,8 @@ #include "MAPL_ErrLog.h" #define _SUCCESS 0 +#ifdef _RETURN +#undef _RETURN +#endif #define _RETURN(status) if(present(rc))rc=status; return module PFL_SeverityLevels @@ -22,7 +25,7 @@ module PFL_SeverityLevels end enum end module PFL_SeverityLevels - + module PFL_Logger use PFL_SeverityLevels, only: NOTSET use PFL_SeverityLevels, only: DEBUG_LEVEL => DEBUG @@ -60,7 +63,7 @@ end subroutine free subroutine debug(this, message, ARG_LIST, unusable, extra, line, file, rc) class (Logger), target, intent(inout) :: this character(len=*), intent(in) :: message - include 'recordOptArgs.inc' + include 'recordOptArgs.inc' class (KeywordEnforcer), optional, intent(in) :: unusable type (StringUnlimitedMap), optional, target, intent(in) :: extra integer, optional, intent(in) :: line @@ -89,7 +92,7 @@ end subroutine debug subroutine info(this, message, ARG_LIST, unusable, extra, line, file, rc) class (Logger), target, intent(inout) :: this character(len=*), intent(in) :: message - include 'recordOptArgs.inc' + include 'recordOptArgs.inc' class (KeywordEnforcer), optional, intent(in) :: unusable type (StringUnlimitedMap), optional, target, intent(in) :: extra integer, optional, intent(in) :: line @@ -118,13 +121,13 @@ end subroutine info subroutine warning(this, message, ARG_LIST, unusable, extra, line, file, rc) class (Logger), target, intent(inout) :: this character(len=*), intent(in) :: message - include 'recordOptArgs.inc' + include 'recordOptArgs.inc' class (KeywordEnforcer), optional, intent(in) :: unusable type (StringUnlimitedMap), optional, target, intent(in) :: extra integer, optional, intent(in) :: line character(*), optional, intent(in) :: file integer, optional, intent(out) :: rc - + _UNUSED_DUMMY(this) _UNUSED_DUMMY(message) _UNUSED_DUMMY(arg1) @@ -148,7 +151,7 @@ subroutine error(this, message, ARG_LIST, unusable, extra, line, file, rc) ! Log message with the integer severity 'DEBUG'. class (Logger), target, intent(inout) :: this character(len=*), intent(in) :: message - include 'recordOptArgs.inc' + include 'recordOptArgs.inc' class (KeywordEnforcer), optional, intent(in) :: unusable type (StringUnlimitedMap), optional, target, intent(in) :: extra integer, optional, intent(in) :: line @@ -177,7 +180,7 @@ end subroutine error subroutine critical(this, message, ARG_LIST, unusable, extra, line, file, rc) class (Logger), target, intent(inout) :: this character(len=*), intent(in) :: message - include 'recordOptArgs.inc' + include 'recordOptArgs.inc' class (KeywordEnforcer), optional, intent(in) :: unusable type (StringUnlimitedMap), optional, target, intent(in) :: extra integer, optional, intent(in) :: line @@ -208,7 +211,7 @@ logical function isEnabledFor(this, level) integer, intent(in) :: level isEnabledFor = .false. end function isEnabledFor - + end module PFL_Logger module PFL_LoggerManager @@ -228,7 +231,7 @@ module PFL_LoggerManager generic :: get_logger => get_logger_root procedure :: free end type LoggerManager - + type (LoggerManager), target, save :: logging contains From f6e47a709ec21c6094d03e306f454ef4b1ad1d9f Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Wed, 15 Jun 2022 13:00:51 -0400 Subject: [PATCH 53/71] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7fa063469c1..bd39acbbb3ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update CI to work with latest GEOSadas `develop` (Uses a special branch of GEOSadas) - Fix bundleio tests - HistoryGridComp now checks if a file exists already before writing and errors out if so +- Minor updates for FORD documentation testing + - Add `program` statements to some test programs + - Remove `pfio/pfio_io_demo.F90` as dead code + - Fix redefinition of `_RETURN` in `pflogger_stub.F90` ### Added From fef169d5e4a10772b037ffd59d1c210795e82e7c Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 16 Jun 2022 08:27:31 -0400 Subject: [PATCH 54/71] Remove pfio/tests/Test_SimpleClient.pf --- CHANGELOG.md | 1 + pfio/tests/Test_SimpleClient.pf | 15 --------------- 2 files changed, 1 insertion(+), 15 deletions(-) delete mode 100644 pfio/tests/Test_SimpleClient.pf diff --git a/CHANGELOG.md b/CHANGELOG.md index bd39acbbb3ec..20aba8c59140 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add `program` statements to some test programs - Remove `pfio/pfio_io_demo.F90` as dead code - Fix redefinition of `_RETURN` in `pflogger_stub.F90` + - Removed unused `Test_SimpleClient.pf` ### Added diff --git a/pfio/tests/Test_SimpleClient.pf b/pfio/tests/Test_SimpleClient.pf deleted file mode 100644 index fe526bea29cb..000000000000 --- a/pfio/tests/Test_SimpleClient.pf +++ /dev/null @@ -1,15 +0,0 @@ -module Test_SimpleClient - use pFIO_SimpleClient - use pfunit - implicit none - -contains - - @test - subroutine test_ - - - call client%send(array) - - -end module Test_SimpleClient From db88ebe17a5a6f5d84d50cc7ad7415a3dc985131 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 16 Jun 2022 14:52:59 -0400 Subject: [PATCH 55/71] Update components.yaml to latest env and cmake --- .circleci/config.yml | 10 ++++++++++ .github/workflows/workflow.yml | 4 ++-- CHANGELOG.md | 4 +++- components.yaml | 4 ++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c703d1ca64c7..49a2d2c37434 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,5 +1,8 @@ version: 2.1 +# Anchor to prevent forgetting to update a version +baselibs_version: &baselibs_version v6.3.1 + orbs: ci: geos-esm/circleci-tools@1 @@ -15,6 +18,7 @@ workflows: matrix: parameters: compiler: [ifort] + baselibs_version: *baselibs_version repo: MAPL mepodevelop: false run_unit_tests: true @@ -38,6 +42,7 @@ workflows: matrix: parameters: compiler: [gfortran] + baselibs_version: *baselibs_version repo: MAPL mepodevelop: false run_unit_tests: true @@ -51,6 +56,7 @@ workflows: matrix: parameters: compiler: [ifort] + baselibs_version: *baselibs_version repo: MAPL mepodevelop: false extra_cmake_options: "-DBUILD_WITH_FLAP=OFF -DBUILD_WITH_PFLOGGER=OFF -DBUILD_SHARED_MAPL=OFF" @@ -65,6 +71,7 @@ workflows: matrix: parameters: compiler: [gfortran, ifort] + baselibs_version: *baselibs_version repo: GEOSgcm checkout_fixture: true mepodevelop: true @@ -79,6 +86,7 @@ workflows: matrix: parameters: compiler: [gfortran, ifort] + baselibs_version: *baselibs_version repo: GEOSldas mepodevelop: false checkout_fixture: true @@ -94,6 +102,7 @@ workflows: parameters: compiler: [ifort] resource_class: xlarge + baselibs_version: *baselibs_version repo: GEOSadas checkout_fixture: true # This branch on GEOSadas will be used to track subrepos needed @@ -114,3 +123,4 @@ workflows: requires: - build-GEOSgcm-on-<< matrix.compiler >> repo: GEOSgcm + baselibs_version: *baselibs_version diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 9df322623204..1ce85fe7eaa1 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -17,7 +17,7 @@ jobs: name: Build and Test MAPL runs-on: ubuntu-latest container: - image: gmao/ubuntu20-geos-env-mkl:v6.2.13-openmpi_4.1.2-gcc_11.2.0 + image: gmao/ubuntu20-geos-env-mkl:v6.3.1-openmpi_4.1.2-gcc_11.2.0 # Per https://github.com/actions/virtual-environments/issues/1445#issuecomment-713861495 # It seems like we might not need secrets on GitHub Actions which is good for forked # pull requests @@ -74,7 +74,7 @@ jobs: name: Build and Test MAPL Intel runs-on: ubuntu-latest container: - image: gmao/ubuntu20-geos-env:v6.2.13-intelmpi_2021.3.0-intel_2021.3.0 + image: gmao/ubuntu20-geos-env:v6.3.1-intelmpi_2021.3.0-intel_2021.3.0 # Per https://github.com/actions/virtual-environments/issues/1445#issuecomment-713861495 # It seems like we might not need secrets on GitHub Actions which is good for forked # pull requests diff --git a/CHANGELOG.md b/CHANGELOG.md index 20aba8c59140..5e6cccadcdf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,10 +31,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Modified error messages in FileMetadataUtilities to be unique and print filename -- Updated the ESMA_cmake version to v3.16.0 +- Updated the ESMA_env version to v3.14.0 +- Updated the ESMA_cmake version to v3.17.0 - Updated GitHub Actions MAPL build tests - Added assert for missing file with ExtData2G - Re-enable bundleio tests in CI +- Updated CircleCI to use latest Baselibs ### Removed diff --git a/components.yaml b/components.yaml index d84e5e3017a0..35913f85302e 100644 --- a/components.yaml +++ b/components.yaml @@ -5,13 +5,13 @@ MAPL: ESMA_env: local: ./ESMA_env remote: ../ESMA_env.git - tag: v3.13.0 + tag: v3.14.0 develop: main ESMA_cmake: local: ./ESMA_cmake remote: ../ESMA_cmake.git - tag: v3.16.0 + tag: v3.17.0 develop: develop ecbuild: From c76f20f415662134aabd31212511918908590655 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 17 Jun 2022 08:54:03 -0400 Subject: [PATCH 56/71] Try to get GEOSldas to work --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 49a2d2c37434..b0573fa2bf02 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -88,7 +88,9 @@ workflows: compiler: [gfortran, ifort] baselibs_version: *baselibs_version repo: GEOSldas - mepodevelop: false + #mepodevelop: false # Until GEOSldas updates its cmake, we need to update it here + mepodevelop: true + develop_repos: "cmake" checkout_fixture: true fixture_branch: develop checkout_mapl_branch: true From 0cfa10c6a9cb931167cdc7bd250662d9cd2b47b4 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 17 Jun 2022 10:12:51 -0400 Subject: [PATCH 57/71] GEOSldas is updated. Push --- .circleci/config.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b0573fa2bf02..49a2d2c37434 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -88,9 +88,7 @@ workflows: compiler: [gfortran, ifort] baselibs_version: *baselibs_version repo: GEOSldas - #mepodevelop: false # Until GEOSldas updates its cmake, we need to update it here - mepodevelop: true - develop_repos: "cmake" + mepodevelop: false checkout_fixture: true fixture_branch: develop checkout_mapl_branch: true From f93dab2b48d962a337539de90e1771133ff17765 Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang Date: Sat, 18 Jun 2022 13:57:47 -0400 Subject: [PATCH 58/71] by pass missing value of NaN --- base/FileMetadataUtilities.F90 | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/base/FileMetadataUtilities.F90 b/base/FileMetadataUtilities.F90 index 695bffe89e5b..4168df2d3305 100644 --- a/base/FileMetadataUtilities.F90 +++ b/base/FileMetadataUtilities.F90 @@ -83,11 +83,28 @@ logical function var_has_missing_value(this,var_name,rc) integer :: status character(:), allocatable :: fname type(Variable), pointer :: var + class(Attribute), pointer :: attr + class(*), pointer :: value fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) - var_has_missing_value = var%is_attribute_present("_FillValue") + + var_has_missing_value = .false. + if ( var%is_attribute_present("_FillValue")) then + attr=>var%get_attribute("_FillValue") + value =>attr%get_value() + select type(value) + type is (real(kind=REAL64)) + var_has_missing_value = .true. + type is (real(kind=REAL32)) + var_has_missing_value = .true. + type is (integer(kind=INT64)) + var_has_missing_value = .true. + type is (integer(kind=INT32)) + var_has_missing_value = .true. + end select + endif _RETURN(_SUCCESS) end function var_has_missing_value From e63aec1bfc059e865bfe6f4bdab7baa869214bd0 Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang Date: Sat, 18 Jun 2022 14:01:10 -0400 Subject: [PATCH 59/71] change log --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bd9daa74074..f7e249900895 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- By pass the check of the missing value of Nan - Update CI to work with latest GEOSadas `develop` (Uses a special branch of GEOSadas) - Fix bundleio tests - HistoryGridComp now checks if a file exists already before writing and errors out if so From cbfb498e5a9de3504a46a4a9bf0bd849ee6bf7a2 Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang Date: Wed, 22 Jun 2022 00:06:09 -0400 Subject: [PATCH 60/71] by pass in request data call --- base/FileMetadataUtilities.F90 | 19 +------------------ griddedio/GriddedIO.F90 | 4 ++++ 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/base/FileMetadataUtilities.F90 b/base/FileMetadataUtilities.F90 index 4168df2d3305..695bffe89e5b 100644 --- a/base/FileMetadataUtilities.F90 +++ b/base/FileMetadataUtilities.F90 @@ -83,28 +83,11 @@ logical function var_has_missing_value(this,var_name,rc) integer :: status character(:), allocatable :: fname type(Variable), pointer :: var - class(Attribute), pointer :: attr - class(*), pointer :: value fname = this%get_file_name(_RC) var => this%get_variable(var_name,_RC) _ASSERT(associated(var),"no variable named "//var_name//" in "//fname) - - var_has_missing_value = .false. - if ( var%is_attribute_present("_FillValue")) then - attr=>var%get_attribute("_FillValue") - value =>attr%get_value() - select type(value) - type is (real(kind=REAL64)) - var_has_missing_value = .true. - type is (real(kind=REAL32)) - var_has_missing_value = .true. - type is (integer(kind=INT64)) - var_has_missing_value = .true. - type is (integer(kind=INT32)) - var_has_missing_value = .true. - end select - endif + var_has_missing_value = var%is_attribute_present("_FillValue") _RETURN(_SUCCESS) end function var_has_missing_value diff --git a/griddedio/GriddedIO.F90 b/griddedio/GriddedIO.F90 index d28851bfbb43..4a7ffcf898ad 100644 --- a/griddedio/GriddedIO.F90 +++ b/griddedio/GriddedIO.F90 @@ -1013,6 +1013,10 @@ subroutine request_data_from_file(this,filename,timeindex,rc) this%read_collection_id, fileName, trim(names(i)), & & ref, start=localStart, global_start=globalStart, global_count=globalCount) deallocate(localStart,globalStart,globalCount) + ! if is Nan, do not set '_FillValue'. + ! The pair ESMF_AttributeSet and ESMF_AttributeGet cannot handle Nan + if (missing_value /= missing_value) cycle + if (missing_value /= MAPL_UNDEF) then call ESMF_AttributeSet(input_fields(i),name=fill_value_label,value=missing_value,_RC) end if From 3b9d10b45e15c0878b801aaa31d2ba5be2da5725 Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang Date: Wed, 22 Jun 2022 09:16:21 -0400 Subject: [PATCH 61/71] test Nan and change Nan to MAPL_Undef --- griddedio/GriddedIO.F90 | 56 +++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/griddedio/GriddedIO.F90 b/griddedio/GriddedIO.F90 index 4a7ffcf898ad..82a3b1497cd5 100644 --- a/griddedio/GriddedIO.F90 +++ b/griddedio/GriddedIO.F90 @@ -24,6 +24,7 @@ module MAPL_GriddedIOMod use MAPL_FileMetadataUtilsMod use, intrinsic :: ISO_C_BINDING use, intrinsic :: iso_fortran_env, only: REAL64 + use ieee_arithmetic, only: isnan => ieee_is_nan implicit none private @@ -1015,7 +1016,7 @@ subroutine request_data_from_file(this,filename,timeindex,rc) deallocate(localStart,globalStart,globalCount) ! if is Nan, do not set '_FillValue'. ! The pair ESMF_AttributeSet and ESMF_AttributeGet cannot handle Nan - if (missing_value /= missing_value) cycle + if (isnan(missing_value)) cycle if (missing_value /= MAPL_UNDEF) then call ESMF_AttributeSet(input_fields(i),name=fill_value_label,value=missing_value,_RC) @@ -1092,31 +1093,44 @@ subroutine swap_undef_value(this,fname,rc) call ESMF_AttributeGet(field,name=fill_value_label,isPresent=has_custom_fill_val,_RC) if (has_custom_fill_val) then - call ESMF_AttributeGet(field,name=fill_value_label,value=fill_value,_RC) - call ESMF_FieldGet(field,rank=fieldRank,_RC) - _VERIFY(status) - call ESMF_FieldBundleGet(this%input_bundle,grid=gridIn,_RC) - hasDE_in = MAPL_GridHasDE(gridIn,_RC) + endif + + call ESMF_FieldGet(field,rank=fieldRank,_RC) + _VERIFY(status) + call ESMF_FieldBundleGet(this%input_bundle,grid=gridIn,_RC) + hasDE_in = MAPL_GridHasDE(gridIn,_RC) - if (fieldRank==2) then - if (hasDE_in) then - call MAPL_FieldGetPointer(field,ptr2d,_RC) - else - allocate(ptr2d(0,0)) - end if - where(ptr2d==fill_value) ptr2d=MAPL_UNDEF - else if (fieldRank==3) then - if (hasDE_in) then - call ESMF_FieldGet(field,farrayPtr=ptr3d,_RC) - else - allocate(ptr3d(0,0,0)) - end if - where(ptr3d==fill_value) ptr3d=MAPL_UNDEF + if (fieldRank==2) then + if (hasDE_in) then + call MAPL_FieldGetPointer(field,ptr2d,_RC) else - _FAIL('rank not supported') + allocate(ptr2d(0,0)) end if + else if (fieldRank==3) then + if (hasDE_in) then + call ESMF_FieldGet(field,farrayPtr=ptr3d,_RC) + else + allocate(ptr3d(0,0,0)) + end if + else + _FAIL('rank not supported') end if + + if (associated(ptr2d)) then + if (has_custom_fill_val) then + where(ptr2d==fill_value) ptr2d=MAPL_UNDEF + else + where(isnan(ptr2d)) ptr2d=MAPL_UNDEF + endif + else if (associated(ptr3d)) then + if (has_custom_fill_val) then + where(ptr3d==fill_value) ptr3d=MAPL_UNDEF + else + where(isnan(ptr3d)) ptr3d=MAPL_UNDEF + endif + endif + _RETURN(_SUCCESS) end subroutine swap_undef_value From f5e34e9336d6cfdc8d5ab35e7e035e4cc7ccfe14 Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang Date: Wed, 22 Jun 2022 11:40:17 -0400 Subject: [PATCH 62/71] save metadata to cfio --- griddedio/GriddedIO.F90 | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/griddedio/GriddedIO.F90 b/griddedio/GriddedIO.F90 index 82a3b1497cd5..29cad7275729 100644 --- a/griddedio/GriddedIO.F90 +++ b/griddedio/GriddedIO.F90 @@ -944,7 +944,7 @@ subroutine request_data_from_file(this,filename,timeindex,rc) collection => Datacollections%at(this%metadata_collection_id) metadata => collection%find(filename, __RC__) - + this%metadata = metadata filegrid = collection%src_grid factory => get_factory(filegrid) hasDE=MAPL_GridHasDE(filegrid,rc=status) @@ -1014,13 +1014,6 @@ subroutine request_data_from_file(this,filename,timeindex,rc) this%read_collection_id, fileName, trim(names(i)), & & ref, start=localStart, global_start=globalStart, global_count=globalCount) deallocate(localStart,globalStart,globalCount) - ! if is Nan, do not set '_FillValue'. - ! The pair ESMF_AttributeSet and ESMF_AttributeGet cannot handle Nan - if (isnan(missing_value)) cycle - - if (missing_value /= MAPL_UNDEF) then - call ESMF_AttributeSet(input_fields(i),name=fill_value_label,value=missing_value,_RC) - end if enddo deallocate(gridLocalStart,gridGlobalStart,gridGlobalCount) this%input_bundle = ESMF_FieldBundleCreate(fieldList=input_fields,rc=status) @@ -1086,19 +1079,17 @@ subroutine swap_undef_value(this,fname,rc) real, pointer :: ptr3d(:,:,:) real, pointer :: ptr2d(:,:) type(ESMF_Grid) :: gridIn - logical :: hasDE_in,has_custom_fill_val + logical :: hasDE_in real(REAL32) :: fill_value - call ESMF_FieldBundleGet(this%input_bundle,fname,field=field,_RC) - call ESMF_AttributeGet(field,name=fill_value_label,isPresent=has_custom_fill_val,_RC) - - if (has_custom_fill_val) then - call ESMF_AttributeGet(field,name=fill_value_label,value=fill_value,_RC) + if ( .not. this%metadata%var_has_missing_value(fname) ) + _RETURN(_SUCCESS) endif - + + fill_value = this%metadata%var_get_missing_value(fname,_RC) + + call ESMF_FieldBundleGet(this%input_bundle,fname,field=field, grid=gridIn, _RC) call ESMF_FieldGet(field,rank=fieldRank,_RC) - _VERIFY(status) - call ESMF_FieldBundleGet(this%input_bundle,grid=gridIn,_RC) hasDE_in = MAPL_GridHasDE(gridIn,_RC) if (fieldRank==2) then @@ -1118,16 +1109,16 @@ subroutine swap_undef_value(this,fname,rc) end if if (associated(ptr2d)) then - if (has_custom_fill_val) then - where(ptr2d==fill_value) ptr2d=MAPL_UNDEF - else + if (isnan(fill_value)) then where(isnan(ptr2d)) ptr2d=MAPL_UNDEF + else + where(ptr2d==fill_value) ptr2d=MAPL_UNDEF endif else if (associated(ptr3d)) then - if (has_custom_fill_val) then - where(ptr3d==fill_value) ptr3d=MAPL_UNDEF - else + if (isnan(fill_value)) then where(isnan(ptr3d)) ptr3d=MAPL_UNDEF + else + where(ptr3d==fill_value) ptr3d=MAPL_UNDEF endif endif From 247248c1583ed4f86f265a256c6abbbd05fd68a4 Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang Date: Wed, 22 Jun 2022 12:05:19 -0400 Subject: [PATCH 63/71] add the field current_file_metadata --- griddedio/GriddedIO.F90 | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/griddedio/GriddedIO.F90 b/griddedio/GriddedIO.F90 index 29cad7275729..108dd334d071 100644 --- a/griddedio/GriddedIO.F90 +++ b/griddedio/GriddedIO.F90 @@ -29,10 +29,9 @@ module MAPL_GriddedIOMod private - character(len=20), parameter :: fill_value_label = "GriddedIO_Fill_Value" - type, public :: MAPL_GriddedIO type(FileMetaData) :: metadata + type(fileMetadataUtils), pointer :: current_file_metadata integer :: write_collection_id integer :: read_collection_id integer :: metadata_collection_id @@ -939,12 +938,10 @@ subroutine request_data_from_file(this,filename,timeindex,rc) type(ESMF_Grid) :: output_grid logical :: hasDE class(AbstractGridFactory), pointer :: factory - type(fileMetadataUtils), pointer :: metadata real(REAL32) :: missing_value collection => Datacollections%at(this%metadata_collection_id) - metadata => collection%find(filename, __RC__) - this%metadata = metadata + this%current_file_metadata => collection%find(filename, __RC__) filegrid = collection%src_grid factory => get_factory(filegrid) hasDE=MAPL_GridHasDE(filegrid,rc=status) @@ -957,7 +954,7 @@ subroutine request_data_from_file(this,filename,timeindex,rc) end if call MAPL_GridGet(filegrid,globalCellCountPerdim=dims,rc=status) _VERIFY(status) - call factory%generate_file_bounds(fileGrid,gridLocalStart,gridGlobalStart,gridGlobalCount,metadata=metadata%fileMetadata,rc=status) + call factory%generate_file_bounds(fileGrid,gridLocalStart,gridGlobalStart,gridGlobalCount,metadata=this%current_file_metadata%fileMetadata,rc=status) _VERIFY(status) ! create input bundle call ESMF_FieldBundleGet(this%output_bundle,fieldCount=numVars,rc=status) @@ -973,10 +970,6 @@ subroutine request_data_from_file(this,filename,timeindex,rc) _VERIFY(status) call ESMF_FieldGet(output_field,rank=rank,rc=status) _VERIFY(status) - missing_value = MAPL_UNDEF - if (metadata%var_has_missing_value(trim(names(i)))) then - missing_value = metadata%var_get_missing_value(trim(names(i)),_RC) - end if if (rank==2) then input_fields(i) = ESMF_FieldCreate(filegrid,typekind=ESMF_TYPEKIND_R4,gridToFieldMap=[1,2],name=trim(names(i)),rc=status) _VERIFY(status) @@ -1005,7 +998,7 @@ subroutine request_data_from_file(this,filename,timeindex,rc) allocate(ptr3d(0,0,0),stat=status) _VERIFY(status) end if - ref=factory%generate_file_reference3D(ptr3d,metadata=metadata%filemetadata) + ref=factory%generate_file_reference3D(ptr3d,metadata=this%current_file_metadata%filemetadata) allocate(localStart,source=[gridLocalStart,1,timeIndex]) allocate(globalStart,source=[gridGlobalStart,1,timeIndex]) allocate(globalCount,source=[gridGlobalCount,lm,1]) @@ -1082,11 +1075,11 @@ subroutine swap_undef_value(this,fname,rc) logical :: hasDE_in real(REAL32) :: fill_value - if ( .not. this%metadata%var_has_missing_value(fname) ) + if ( .not. this%current_file_metadata%var_has_missing_value(fname) ) _RETURN(_SUCCESS) endif - fill_value = this%metadata%var_get_missing_value(fname,_RC) + fill_value = this%current_file_metadata%var_get_missing_value(fname,_RC) call ESMF_FieldBundleGet(this%input_bundle,fname,field=field, grid=gridIn, _RC) call ESMF_FieldGet(field,rank=fieldRank,_RC) From 5bd1910525b6aace0ca25c9e46781c739cfb4828 Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang <52509753+weiyuan-jiang@users.noreply.github.com> Date: Wed, 22 Jun 2022 17:35:54 -0400 Subject: [PATCH 64/71] fix typos --- griddedio/GriddedIO.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/griddedio/GriddedIO.F90 b/griddedio/GriddedIO.F90 index 108dd334d071..c0b96e7ddb00 100644 --- a/griddedio/GriddedIO.F90 +++ b/griddedio/GriddedIO.F90 @@ -1075,13 +1075,14 @@ subroutine swap_undef_value(this,fname,rc) logical :: hasDE_in real(REAL32) :: fill_value - if ( .not. this%current_file_metadata%var_has_missing_value(fname) ) + if ( .not. this%current_file_metadata%var_has_missing_value(fname) ) then _RETURN(_SUCCESS) endif fill_value = this%current_file_metadata%var_get_missing_value(fname,_RC) - call ESMF_FieldBundleGet(this%input_bundle,fname,field=field, grid=gridIn, _RC) + call ESMF_FieldBundleGet(this%input_bundle,fname,field=field,_RC) + call ESMF_FieldBundleGet(this%input_bundle,grid=gridIn,_RC) call ESMF_FieldGet(field,rank=fieldRank,_RC) hasDE_in = MAPL_GridHasDE(gridIn,_RC) From 961d4dedc8a4a04f6a40604945d20213acd12bdd Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang Date: Wed, 22 Jun 2022 22:49:13 -0400 Subject: [PATCH 65/71] re-block check --- griddedio/GriddedIO.F90 | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/griddedio/GriddedIO.F90 b/griddedio/GriddedIO.F90 index 108dd334d071..43e97b5e05f2 100644 --- a/griddedio/GriddedIO.F90 +++ b/griddedio/GriddedIO.F90 @@ -1091,29 +1091,29 @@ subroutine swap_undef_value(this,fname,rc) else allocate(ptr2d(0,0)) end if + + if (isnan(fill_value)) then + where(isnan(ptr2d)) ptr2d=MAPL_UNDEF + else + where(ptr2d==fill_value) ptr2d=MAPL_UNDEF + endif + else if (fieldRank==3) then if (hasDE_in) then call ESMF_FieldGet(field,farrayPtr=ptr3d,_RC) else allocate(ptr3d(0,0,0)) end if - else - _FAIL('rank not supported') - end if - if (associated(ptr2d)) then - if (isnan(fill_value)) then - where(isnan(ptr2d)) ptr2d=MAPL_UNDEF - else - where(ptr2d==fill_value) ptr2d=MAPL_UNDEF - endif - else if (associated(ptr3d)) then if (isnan(fill_value)) then where(isnan(ptr3d)) ptr3d=MAPL_UNDEF else where(ptr3d==fill_value) ptr3d=MAPL_UNDEF endif - endif + + else + _FAIL('rank not supported') + end if _RETURN(_SUCCESS) From 5ace0e718105782c3de459564cb30cbc44b4fd41 Mon Sep 17 00:00:00 2001 From: Weiyuan Jiang Date: Thu, 23 Jun 2022 12:28:24 -0500 Subject: [PATCH 66/71] fixed CMakeLists.txt --- CMakeLists.txt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8804ee877955..cd77e85fd5af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,11 +129,14 @@ if (NOT Baselibs_FOUND) find_package(ESMF MODULE REQUIRED) # ESMF as used in MAPL requires MPI - target_link_libraries(ESMF INTERFACE MPI::MPI_Fortran) - - # MAPL and GEOS use lowercase target due to historical reasons but - # the latest FindESMF.cmake file from ESMF produces an ESMF target. - add_library(esmf ALIAS ESMF) + if (TARGET esmf) + target_link_libraries(esmf INTERFACE MPI::MPI_Fortran) + else() + target_link_libraries(ESMF INTERFACE MPI::MPI_Fortran) + # MAPL and GEOS use lowercase target due to historical reasons but + # the latest FindESMF.cmake file from ESMF produces an ESMF target. + add_library(esmf ALIAS ESMF) + endif() endif () endif () From e79c77224095546aaa0fba7d130f10282d223f30 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 23 Jun 2022 14:11:36 -0400 Subject: [PATCH 67/71] Add NetCDF C requirement to CMake --- CHANGELOG.md | 1 + CMakeLists.txt | 2 +- pfio/CMakeLists.txt | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bd9daa74074..f06bf2c7c10a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove `pfio/pfio_io_demo.F90` as dead code - Fix redefinition of `_RETURN` in `pflogger_stub.F90` - Removed unused `Test_SimpleClient.pf` +- Update CMake to require NetCDF C components and add `NetCDF::NetCDF_C` to pfio CMake ### Added diff --git a/CMakeLists.txt b/CMakeLists.txt index 8804ee877955..fffa466d23c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,7 +114,7 @@ if (NOT Baselibs_FOUND) set(MPI_DETERMINE_LIBRARY_VERSION TRUE) find_package(MPI) - find_package(NetCDF REQUIRED Fortran) + find_package(NetCDF REQUIRED C Fortran) add_definitions(-DHAS_NETCDF4) add_definitions(-DHAS_NETCDF3) add_definitions(-DNETCDF_NEED_NF_MPIIO) diff --git a/pfio/CMakeLists.txt b/pfio/CMakeLists.txt index f3574f53c43f..f0e85631d0fe 100644 --- a/pfio/CMakeLists.txt +++ b/pfio/CMakeLists.txt @@ -91,7 +91,7 @@ set (srcs StringVectorUtil.F90 ) -esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.profiler NetCDF::NetCDF_Fortran TYPE ${MAPL_LIBRARY_TYPE}) +esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.profiler NetCDF::NetCDF_Fortran NetCDF::NetCDF_C TYPE ${MAPL_LIBRARY_TYPE}) target_link_libraries (${this} PUBLIC GFTL_SHARED::gftl-shared PRIVATE MPI::MPI_Fortran) # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG") @@ -135,7 +135,7 @@ endif () ecbuild_add_executable ( TARGET pfio_writer.x SOURCES pfio_writer.F90 - LIBS ${this} NetCDF::NetCDF_Fortran MPI::MPI_Fortran) + LIBS ${this} NetCDF::NetCDF_Fortran NetCDF::NetCDF_C MPI::MPI_Fortran) set_target_properties (pfio_writer.x PROPERTIES Fortran_MODULE_DIRECTORY ${include_${this}}) #-------------------- From 9d5968b53c8d2352689010a574b520c195765720 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 23 Jun 2022 14:20:43 -0400 Subject: [PATCH 68/71] Add comment about ESMF library CMake --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd77e85fd5af..a319c18150f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,9 +129,12 @@ if (NOT Baselibs_FOUND) find_package(ESMF MODULE REQUIRED) # ESMF as used in MAPL requires MPI + # NOTE: This looks odd because some versions of FindESMF.cmake out in the + # world provide an "esmf" target while others provide "ESMF". So we + # need this ugliness to support both. if (TARGET esmf) target_link_libraries(esmf INTERFACE MPI::MPI_Fortran) - else() + else() target_link_libraries(ESMF INTERFACE MPI::MPI_Fortran) # MAPL and GEOS use lowercase target due to historical reasons but # the latest FindESMF.cmake file from ESMF produces an ESMF target. From 8a9ab11908b9878347e4c4e0582bc159fc80fc2b Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 23 Jun 2022 15:49:11 -0400 Subject: [PATCH 69/71] Add YAML Linter --- .github/workflows/changelog-enforcer.yml | 2 +- .github/workflows/validate_yaml_files.yml | 24 +++++++++++++++ .yamllint.yml | 29 +++++++++++++++++++ CHANGELOG.md | 2 ++ .../test_cases/case11/extdata.yaml | 2 +- .../test_cases/case23/extdata.yaml | 2 +- 6 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/validate_yaml_files.yml create mode 100644 .yamllint.yml diff --git a/.github/workflows/changelog-enforcer.yml b/.github/workflows/changelog-enforcer.yml index 1e9cb2979097..cd31258b2684 100644 --- a/.github/workflows/changelog-enforcer.yml +++ b/.github/workflows/changelog-enforcer.yml @@ -4,7 +4,7 @@ on: types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] jobs: - # Enforces the update of a changelog file on every pull request + # Enforces the update of a changelog file on every pull request changelog: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/validate_yaml_files.yml b/.github/workflows/validate_yaml_files.yml new file mode 100644 index 000000000000..b87f59d99d05 --- /dev/null +++ b/.github/workflows/validate_yaml_files.yml @@ -0,0 +1,24 @@ +--- +name: Yaml Lint + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] +jobs: + validate-YAML: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - id: yaml-lint + name: yaml-lint + uses: ibiqlik/action-yamllint@v3 + with: + no_warnings: true + format: colored + config_file: .yamllint.yml + + - uses: actions/upload-artifact@v2 + if: always() + with: + name: yamllint-logfile + path: ${{ steps.yaml-lint.outputs.logfile }} diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 000000000000..83f5340c7fdf --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,29 @@ +--- + +extends: default + +rules: + braces: + level: warning + max-spaces-inside: 1 + brackets: + level: warning + max-spaces-inside: 1 + colons: + level: warning + commas: + level: warning + comments: disable + comments-indentation: disable + document-start: disable + empty-lines: + level: warning + hyphens: + level: warning + indentation: + level: warning + indent-sequences: consistent + line-length: + level: warning + allow-non-breakable-inline-mappings: true + truthy: disable diff --git a/CHANGELOG.md b/CHANGELOG.md index f06bf2c7c10a..ebf770d624c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added monotonic regridding option - Make availalbe to History and ExtData2G all supported regridding methods - Add test cases for ExtData +- Add YAML validator GitHub Action + - This action makes sure all YAML files are valid (to a relaxed standard) ### Changed diff --git a/Tests/ExtData_Testing_Framework/test_cases/case11/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case11/extdata.yaml index f5641f693d84..6738280d70a4 100644 --- a/Tests/ExtData_Testing_Framework/test_cases/case11/extdata.yaml +++ b/Tests/ExtData_Testing_Framework/test_cases/case11/extdata.yaml @@ -1,4 +1,4 @@ Collections: fstream1: {template: "case1.%y4%m2.nc4", valid_range: "2006-01-01/2007-12-31" } Exports: - VAR2D: {variable: VAR2D, collection: fstream1, sample: {extrapolation: clim}} + VAR2D: {variable: VAR2D, collection: fstream1, sample: {extrapolation: clim}} diff --git a/Tests/ExtData_Testing_Framework/test_cases/case23/extdata.yaml b/Tests/ExtData_Testing_Framework/test_cases/case23/extdata.yaml index 62007858b755..49fa281346d1 100644 --- a/Tests/ExtData_Testing_Framework/test_cases/case23/extdata.yaml +++ b/Tests/ExtData_Testing_Framework/test_cases/case23/extdata.yaml @@ -6,6 +6,6 @@ Samplings: extrapolation: clim source_time: "2016-01-01/2016-12-31" Exports: - VAR2D: + VAR2D: - {starting: 1970-01-01, variable: VAR2D, collection: fstream1, sample: S1} - {starting: 2020-01-01, variable: VAR2D, collection: fstream2} From 1744fb4d1ab96457973ce7a8efb78f7ae0d3a864 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 23 Jun 2022 15:51:51 -0400 Subject: [PATCH 70/71] Add comments about yaml linter --- .github/workflows/validate_yaml_files.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/validate_yaml_files.yml b/.github/workflows/validate_yaml_files.yml index b87f59d99d05..ff19b0d6e695 100644 --- a/.github/workflows/validate_yaml_files.yml +++ b/.github/workflows/validate_yaml_files.yml @@ -1,9 +1,16 @@ --- + +# Based on code from https://github.com/marketplace/actions/yaml-lint + name: Yaml Lint on: pull_request: types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] + +# This validation is equivalent to running on the command line: +# yamllint -d relaxed --no-warnings +# and is controlled by the .yamllint.yml file jobs: validate-YAML: runs-on: ubuntu-latest From 6f7b2d21546e595dc2f9868428e17947a6ef75e5 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 24 Jun 2022 09:29:44 -0400 Subject: [PATCH 71/71] Update CHANGELOG and CMakeLists for 2.22.0 Release --- CHANGELOG.md | 16 ++++++++++++---- CMakeLists.txt | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd59d38a03a9..07e285887c75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +### Added + +### Changed + +### Removed + +### Deprecated + +## [2.22.0] - 2022-06-24 + +### Fixed + - By pass the check of the missing value of Nan - Update CI to work with latest GEOSadas `develop` (Uses a special branch of GEOSadas) - Fix bundleio tests @@ -46,10 +58,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add explicit interface dependence of `MPI` for `ESMF` target - Add `esmf` alias library for `ESMF` for compatibility -### Removed - -### Deprecated - ## [2.21.3] - 2022-06-07 ### Fixed diff --git a/CMakeLists.txt b/CMakeLists.txt index a7ed98affc42..e6e2bfab0487 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_policy (SET CMP0054 NEW) project ( MAPL - VERSION 2.21.3 + VERSION 2.22.0 LANGUAGES Fortran CXX C) # Note - CXX is required for ESMF # Set the default build type to release