The CCPP requirements state that every scheme must use implicit none. This is not followed through consistently, for example subroutine neg_check in GF deep convection doesn't declare its loop variables i and k:
Change the build system such that it adds compiler flags that enforece implicit none, whether it is set in the code or not.
Identify all schemes that do not have implicit none and set it on the module level (if modules are used - better be); remove at the individual subroutine level. If no modules are used (bad), set at the subroutine level. Or fix to use modules!
Description
The CCPP requirements state that every scheme must use
implicit none
. This is not followed through consistently, for example subroutine neg_check in GF deep convection doesn't declare its loop variablesi
andk
:https://github.com/ufs-community/ccpp-physics/blob/1c2a898e97f069eeeb930cfb542db67ed349b72c/physics/CONV/Grell_Freitas/cu_gf_deep.F90#L3938
Solution
2 steps:
implicit none
, whether it is set in the code or not.implicit none
and set it on the module level (if modules are used - better be); remove at the individual subroutine level. If no modules are used (bad), set at the subroutine level. Or fix to use modules!Alternatives (optional)
Keep violating CCPP requirements
Related to (optional)
n/a