Summary
base/Base.F90 (MAPLBase_Mod) currently re-exports 26 modules via bare use statements. Many of these are defined in shared/ or base3g/ and are already available to consumers via the proper MAPL3 export path (MAPL → MaplShared or mapl_base3g). Keeping them in MAPLBase_Mod is redundant and makes the module a catch-all umbrella rather than exporting only what it owns.
Removed (11 use statements)
| Module |
Defined in |
Already exported via |
MAPL_Constants (both lines incl. MAPL_PI_R8 alias) |
shared/ |
MaplShared → MAPL |
MAPL_SortMod |
shared/ |
MaplShared → MAPL |
MAPL_SunMod |
base3g/ |
mapl_base3g → MAPL |
MAPL_InterpMod |
shared/ |
MaplShared → MAPL |
MAPL_HashMod |
shared/ |
MaplShared → MAPL |
MAPL_LoadBalanceMod |
shared/ |
MaplShared → MAPL |
MAPL_DirPathMod |
shared/ |
MaplShared → MAPL |
MAPL_KeywordEnforcerMod |
shared/ |
MaplShared → MAPL |
MAPL_SimpleCommSplitterMod |
shared/ |
MaplShared → MAPL |
MAPL_SplitCommunicatorMod |
shared/ |
MaplShared → MAPL |
mapl_LocalDisplacementEnsemble |
base3g/ |
mapl_base3g → MAPL |
Must stay (despite living in shared/ or base3g/)
| Module |
Reason |
MAPL_ShmemMod |
AppGridCreate.F90 (FVdycoreCubed) uses MAPL_AllocNodeArray and MAPL_DeAllocNodeArray transitively via use MAPL2, only: — removing broke the build |
MAPL_MemUtilsMod |
Same file uses MAPL_MemUtilsWrite transitively via use MAPL2, only: |
These two will need to remain until their consumers (AppGridCreate.F90) are updated to use the modules directly.
What stays (only in base/)
Modules defined only in base/ (or whose removal is deferred) are unchanged:
ESMFL_Mod, MAPL_ExceptionHandling, MAPL_BaseMod, MAPL_IOMod, MAPL_ConfigMod, MAPL_LocStreamMod, MAPL_MaxMinMod, MAPL_SimpleBundleMod, MAPL_ApplicationSupport, MAPL_ServerManager, MAPL_FileMetadataUtilsMod, MAPL_VerticalDataMod, MAPL_SphericalGeometry
Summary
base/Base.F90(MAPLBase_Mod) currently re-exports 26 modules via bareusestatements. Many of these are defined inshared/orbase3g/and are already available to consumers via the proper MAPL3 export path (MAPL→MaplSharedormapl_base3g). Keeping them inMAPLBase_Modis redundant and makes the module a catch-all umbrella rather than exporting only what it owns.Removed (11
usestatements)MAPL_Constants(both lines incl.MAPL_PI_R8alias)shared/MaplShared→MAPLMAPL_SortModshared/MaplShared→MAPLMAPL_SunModbase3g/mapl_base3g→MAPLMAPL_InterpModshared/MaplShared→MAPLMAPL_HashModshared/MaplShared→MAPLMAPL_LoadBalanceModshared/MaplShared→MAPLMAPL_DirPathModshared/MaplShared→MAPLMAPL_KeywordEnforcerModshared/MaplShared→MAPLMAPL_SimpleCommSplitterModshared/MaplShared→MAPLMAPL_SplitCommunicatorModshared/MaplShared→MAPLmapl_LocalDisplacementEnsemblebase3g/mapl_base3g→MAPLMust stay (despite living in shared/ or base3g/)
MAPL_ShmemModAppGridCreate.F90(FVdycoreCubed) usesMAPL_AllocNodeArrayandMAPL_DeAllocNodeArraytransitively viause MAPL2, only:— removing broke the buildMAPL_MemUtilsModMAPL_MemUtilsWritetransitively viause MAPL2, only:These two will need to remain until their consumers (
AppGridCreate.F90) are updated tousethe modules directly.What stays (only in base/)
Modules defined only in
base/(or whose removal is deferred) are unchanged:ESMFL_Mod,MAPL_ExceptionHandling,MAPL_BaseMod,MAPL_IOMod,MAPL_ConfigMod,MAPL_LocStreamMod,MAPL_MaxMinMod,MAPL_SimpleBundleMod,MAPL_ApplicationSupport,MAPL_ServerManager,MAPL_FileMetadataUtilsMod,MAPL_VerticalDataMod,MAPL_SphericalGeometry