Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
4102bdb
Merge pull request #638 from dustinswales/swales_sync_main
mkavulich Feb 4, 2025
b140da3
Update src/CMakeLists.txt: use modern cmake features to install Fortr…
climbfuji Mar 12, 2025
463d5ad
Add missing 'include(GNUInstallDirs)' in src/CMakeLists.txt
climbfuji Mar 19, 2025
11359cb
Update src/CMakeLists.txt: use modern cmake features to install Fortr…
grantfirl Apr 16, 2025
c8fd894
Merge branch 'develop' of https://github.com/ncar/ccpp-framework into…
climbfuji Jul 24, 2025
cd2c99b
Merge branch 'develop' of https://github.com/ncar/ccpp-framework into…
climbfuji Aug 21, 2025
3256121
Update main from develop 2025/07/24 --> 2025/08/21 (#668)
mkavulich Aug 28, 2025
addae26
Create test to illustrate GNU failure
Sep 26, 2025
324c1d9
Merge commit 'addae26f14e127d525c040262d908acf99d70639' into HEAD
Sep 26, 2025
5771816
add parent ddt to group calling list
peverwhee Jan 13, 2026
e595616
find variable working for parent/children, but need to sort of const …
peverwhee Feb 12, 2026
3bd7057
back out ddt library addition to run env
peverwhee Feb 19, 2026
781269a
framework generates but constituents passing individually with wrong …
peverwhee Feb 19, 2026
71a1221
commit latest
peverwhee Feb 24, 2026
f4a05b9
non-constituent ddts being passed through to suite cap
peverwhee Feb 24, 2026
413acab
cleanup
peverwhee Feb 24, 2026
8fc24dd
Initial commit
Mar 5, 2026
1eb706f
Merge branch 'develop' of https://github.com/NCAR/ccpp-framework into…
Mar 16, 2026
dae14d2
Use full DDT reference in Scheme call_list
Mar 16, 2026
b88d5d2
Merge branch 'bug/unalloc_var_to_Group' of https://github.com/dustins…
Mar 16, 2026
42c2898
Some more changes
dustinswales Mar 16, 2026
db17baf
Add target atttribute to DDT declarations in Group cap.
dustinswales Mar 23, 2026
e3c45ed
Handle horizontal loop substitutions in DEBUG checks, Scheme call lis…
dustinswales Mar 23, 2026
98764c9
Variable transforms. Work in progress.
Mar 24, 2026
5f187ed
Optional args. wip
Apr 17, 2026
8e2d34a
Revert "Optional args. wip"
Apr 17, 2026
bbe1c6c
Merge branch 'develop' of https://github.com/NCAR/ccpp-framework into…
Apr 17, 2026
2826979
Update
Apr 17, 2026
0380abb
fix index not found issue
peverwhee Apr 17, 2026
323aae2
Remove variable debug checks
climbfuji Apr 17, 2026
7b11ca5
Merge pull request #7 from peverwhee/advection-test-fixes
dustinswales Apr 17, 2026
ed6edc1
Remove pointer assignment. Remove indexing in Suite cap args.
Apr 17, 2026
510bed4
Merge branch 'bug/unalloc_var_to_Group' of https://github.com/dustins…
Apr 17, 2026
356e279
Add 'add_var_debug_checks' back in
climbfuji Apr 17, 2026
4547336
rename add_var_debug_check and use for handling dimension and active …
peverwhee Apr 17, 2026
dc1ebf5
Add logic to optional variable transforms in Cap
Apr 17, 2026
00dc240
Merge branch 'feature/remove_debug_checks' of https://github.com/clim…
climbfuji Apr 17, 2026
6d67364
Clean up
climbfuji Apr 17, 2026
c7fb137
Merge branch 'bug/unalloc_var_to_Group' of https://github.com/dustins…
climbfuji Apr 17, 2026
5f2ff5c
Merge pull request #9 from climbfuji/feature/remove_debug_checks_for_…
dustinswales Apr 17, 2026
ed5c15a
Merge branch 'develop' of https://github.com/ncar/ccpp-framework into…
climbfuji Apr 17, 2026
a5ec9ba
Update test/nested_suite_test/test_nested_suite_integration.F90
climbfuji Apr 17, 2026
7df1916
Remove logging/logging.F90
climbfuji Apr 17, 2026
88e6216
Remove stub/*
climbfuji Apr 17, 2026
685e165
Stash
Apr 17, 2026
f117ccb
Merge branch 'bug/unalloc_var_to_Group' of https://github.com/dustins…
Apr 17, 2026
a853da8
Merge branch 'bug/unalloc_var_to_Group' of https://github.com/dustins…
climbfuji Apr 17, 2026
40a19c6
Fix bug in scripts/metavar.py: dname --> lname
climbfuji Apr 17, 2026
a1c8696
col_start:col_end in var transforms
Apr 17, 2026
a2dc135
Merge branch 'bug/unalloc_var_to_Group' of https://github.com/dustins…
Apr 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
406 changes: 0 additions & 406 deletions logging/logging.F90

This file was deleted.

17 changes: 11 additions & 6 deletions scripts/ccpp_suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,8 @@ def groups(self):

def find_variable(self, standard_name=None, source_var=None,
any_scope=True, clone=None,
search_call_list=False, loop_subst=False):
search_call_list=False, loop_subst=False,
check_components=True):
"""Attempt to return the variable matching <standard_name>.
if <standard_name> is None, the standard name from <source_var> is used.
It is an error to pass both <standard_name> and <source_var> if
Expand All @@ -278,7 +279,8 @@ def find_variable(self, standard_name=None, source_var=None,
any_scope=any_scope,
clone=None,
search_call_list=srch_clist,
loop_subst=loop_subst)
loop_subst=loop_subst,
check_components=check_components)
if var is None:
# No dice? Check for a group variable which can be promoted
# Don't promote loop standard names
Expand All @@ -289,7 +291,8 @@ def find_variable(self, standard_name=None, source_var=None,
source_var=source_var,
any_scope=False,
search_call_list=srch_clist,
loop_subst=loop_subst)
loop_subst=loop_subst,
check_components=check_components)

if var is not None:
# Promote variable to suite level
Expand Down Expand Up @@ -341,7 +344,8 @@ def find_variable(self, standard_name=None, source_var=None,
# Guess it is time to clone a different variable
var = super().find_variable(standard_name=standard_name,
source_var=source_var,
any_scope=any_scope, clone=clone)
any_scope=any_scope, clone=clone,
check_components=check_components)
# end if
return var

Expand Down Expand Up @@ -459,7 +463,7 @@ def analyze(self, host_model, scheme_library, ddt_library, run_env):
for x in item.schemes()]))
item.analyze(phase, self, scheme_library, ddt_library,
self.check_suite_state(phase),
self.set_suite_state(phase))
self.set_suite_state(phase), host_model)
# Look for group variables that need to be promoted to the suite
# We need to promote any variable used later to the suite, however,
# we do not yet know if it will be used.
Expand Down Expand Up @@ -735,7 +739,8 @@ def __init__(self, sdfs, host_model, scheme_headers, run_env):
if group.phase() == phase:
self.__call_lists[phase].add_vars(group.call_list,
run_env,
gen_unique=True)
gen_unique=True,
add_children=True)
# end if
# end for
# end for
Expand Down
6 changes: 4 additions & 2 deletions scripts/constituents.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ def __init__(self, name, parent_dict, run_env, variables=None):

def find_variable(self, standard_name=None, source_var=None,
any_scope=True, clone=None,
search_call_list=False, loop_subst=False):
search_call_list=False, loop_subst=False,
check_components=True):
"""Attempt to return the variable matching <standard_name>.
if <standard_name> is None, the standard name from <source_var> is used.
It is an error to pass both <standard_name> and <source_var> if
Expand Down Expand Up @@ -86,7 +87,8 @@ def find_variable(self, standard_name=None, source_var=None,
source_var=source_var,
any_scope=any_scope, clone=None,
search_call_list=srch_clist,
loop_subst=loop_subst)
loop_subst=loop_subst,
check_components=check_components)
else:
var = None
# end if
Expand Down
8 changes: 5 additions & 3 deletions scripts/ddt_library.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ def intrinsic_elements(self, check_dict=None):
# end if
return pvalue

def clone(self, subst_dict, source_name=None, source_type=None,
context=None):
def clone(self, subst_dict=None, remove_intent=False,
source_name=None, source_type=None, context=None):
"""Create a clone of this VarDDT object's leaf Var with properties
from <subst_dict> overriding this variable's properties.
<subst_dict> may also be a string in which case only the local_name
Expand Down Expand Up @@ -288,7 +288,7 @@ def collect_ddt_fields(self, var_dict, var, run_env,
# for a DDT, the variable also cannot be in our parent
# dictionaries.
stdname = dvar.get_prop_value('standard_name')
pvar = var_dict.find_variable(standard_name=stdname, any_scope=True)
pvar = var_dict.find_variable(standard_name=stdname, any_scope=True, check_components=False)
if pvar and (not skip_duplicates):
ntx = context_string(dvar.context)
ctx = context_string(pvar.context)
Expand All @@ -300,6 +300,8 @@ def collect_ddt_fields(self, var_dict, var, run_env,
if not pvar:
var_dict.add_variable(subvar, run_env)
# end if
# Add this ddt variable to the parent DDT
var.add_component(subvar)
# end for

def ddt_modules(self, variable_list, ddt_mods=None):
Expand Down
4 changes: 2 additions & 2 deletions scripts/host_cap.py
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ def suite_part_call_list(host_model, const_dict, suite_part, subst_loop_vars,
var_dicts = [host_model, const_dict]
# Figure out which dictionary has the variable
for vdict in var_dicts:
hvar = vdict.find_variable(standard_name=stdname, any_scope=False)
hvar = vdict.find_variable(standard_name=stdname, any_scope=False, check_components=False)
if hvar is not None:
var_dict = vdict
break
Expand All @@ -511,7 +511,7 @@ def suite_part_call_list(host_model, const_dict, suite_part, subst_loop_vars,
raise CCPPError(errmsg)
# End if
if stdname not in CCPP_CONSTANT_VARS:
lname = var_dict.var_call_string(hvar, loop_vars=loop_vars)
lname = var_dict.var_call_string(hvar)
hmvars.append(f"{sp_lname}={lname}")
# End if
# End for
Expand Down
11 changes: 7 additions & 4 deletions scripts/host_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,15 +203,17 @@ def variable_locations(self):

def find_variable(self, standard_name=None, source_var=None,
any_scope=False, clone=None,
search_call_list=False, loop_subst=False):
search_call_list=False, loop_subst=False,
check_components=True):
"""Return the host model variable matching <standard_name> or None
If <loop_subst> is True, substitute a begin:end range for an extent.
"""
my_var = super().find_variable(standard_name=standard_name,
source_var=source_var,
any_scope=any_scope, clone=clone,
search_call_list=search_call_list,
loop_subst=loop_subst)
loop_subst=loop_subst,
check_components=check_components)
if my_var is None:
# Check our DDT library
if standard_name is None:
Expand All @@ -224,7 +226,8 @@ def find_variable(self, standard_name=None, source_var=None,
# end if
# Since we are the parent of the DDT library, only check that dict
my_var = self.__ddt_dict.find_variable(standard_name=standard_name,
any_scope=False)
any_scope=False,
check_components=check_components)
# End if
if loop_subst:
if my_var is None:
Expand Down Expand Up @@ -257,7 +260,7 @@ def find_variable(self, standard_name=None, source_var=None,
vdims = [x.strip() for x in imatch.group(2).split(',')
if ':' not in x]
for vname in vdims:
_ = self.find_variable(standard_name=vname)
_ = self.find_variable(standard_name=vname, check_components=check_components)
# End for
# End if
if isinstance(my_var, VarDDT):
Expand Down
7 changes: 5 additions & 2 deletions scripts/metadata_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@ def register_ddts(file_list):
"""
errors = ""
ddt_names = set()
in_table = False
for mfile in file_list:
if os.path.exists(mfile):
with open(mfile, 'r') as infile:
Expand Down Expand Up @@ -1201,13 +1202,15 @@ def variable_list(self, std_vars=True, loop_vars=True, consts=True):
loop_vars=loop_vars,
consts=consts)

def find_variable(self, std_name, use_local_name=False):
def find_variable(self, std_name, use_local_name=False, check_components=True):
"""Find a variable in this header's dictionary"""
var = None
if use_local_name:
var = self.__variables.find_local_name(std_name)
else:
var = self.__variables.find_variable(std_name, any_scope=False)
var = self.__variables.find_variable(std_name,
any_scope=False,
check_components=check_components)
# end if
return var

Expand Down
Loading
Loading