From 12e1d7f2ed9bdb5e5b3fee29fa0043d1255ba3b6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 17 Apr 2026 12:53:50 -0600 Subject: [PATCH 1/2] Remove logging/logging.F90 --- logging/logging.F90 | 406 -------------------------------------------- 1 file changed, 406 deletions(-) delete mode 100644 logging/logging.F90 diff --git a/logging/logging.F90 b/logging/logging.F90 deleted file mode 100644 index 59e82786..00000000 --- a/logging/logging.F90 +++ /dev/null @@ -1,406 +0,0 @@ -module marbl_logging - -! ============ -! Module Usage -! ============ -! -! Assume a variable named StatusLog (as appears in the marbl_interface_class) -! -! ----------------------------------------------- -! Use the following routines to write log entries -! ----------------------------------------------- -! -! (1) StatusLog%log_noerror -- this stores a log message in StatusLog that does -! not contain a fatal error -! (2) StatusLog%log_header -- this stores a log message in StatusLog that is -! meant to be read as a section header; e.g. StatusLog%log_header('HEADER',...) -! writes the following (including blank lines) -! -! ------ -! HEADER -! ------ -! -! (3) StatusLog%log_error -- this stores a log message in StatusLog that DOES -! contain a fatal error. It does this by setting StatusLog%labort_marbl = -! .true.; when a call from the GCM to MARBL returns, it is important for the -! GCM to check the value of StatusLog%labort_marbl and abort the run if an -! error has been reported. -! (4) StatusLog%log_error_trace -- this stores a log message in StatusLog -! detailing what subroutine was just called and where it was called from. It -! is meant to provide more information when trying to trace the path through -! the code that resulted in an error. -! -! ----------------------------------------------- -! Pseudo-code for writing StatusLog in the driver -! ----------------------------------------------- -! -! type(marbl_status_log_entry_type), pointer :: LogEntry -! -! ! Set pointer to first entry of the log -! LogEntry => StatusLog%FullLog -! -! do while (associated(LogEntry)) -! ! If running in parallel, you may want to check if you are the master -! ! task or if LogEntry%lalltasks = .true. -! write(stdout,*) trim(LogEntry%LogMessage) -! LogEntry => LogEntry%next -! end do -! -! ! Erase contents of log now that they have been written out -! call StatusLog%erase() -! -! if (StatusLog%labort_marbl) then -! [GCM abort call: "error found in MARBL"] -! end if -! - - use marbl_kinds_mod, only : char_len - - implicit none - private - save - - integer, parameter, private :: marbl_log_len = 2*char_len - - !**************************************************************************** - - type, public :: marbl_status_log_entry_type - integer :: ElementInd = -1 ! ElementInd < 0 implies no location data - logical :: lonly_master_writes ! True => message should be written to stdout - ! master task; False => all tasks - character(len=marbl_log_len) :: LogMessage ! Message text - character(len=char_len) :: CodeLocation ! Information on where log was written - - type(marbl_status_log_entry_type), pointer :: next - end type marbl_status_log_entry_type - - !**************************************************************************** - - ! Note: this data type is not in use at the moment, but it is included as an - ! initial step towards allowing the user some control over what types - ! of messages are added to the log. For example, if you do not want - ! the contents of namelists written to the log, you would simply set - ! - ! lLogNamelist = .false. - ! - ! In the future we hope to be able to set these options via namelist, - ! but for now lLogNamelist, lLogGeneral, lLogWarning, and lLogError are - ! all set to .true. and can not be changed without modifying the source - ! code in this file. - type, private :: marbl_log_output_options_type - logical :: labort_on_warning ! True => elevate Warnings to Errors - logical :: lLogVerbose ! Debugging output should be given Verbose label - logical :: lLogNamelist ! Write namelists to log? - logical :: lLogGeneral ! General diagnostic output - logical :: lLogWarning ! Warnings (can be elevated to errors via labort_on_warning) - logical :: lLogError ! Errors (will toggle labort_marbl whether log - ! is written or not) - contains - procedure :: construct => marbl_output_options_constructor - end type marbl_log_output_options_type - - !**************************************************************************** - - type, public :: marbl_log_type - logical, private :: lconstructed = .false. ! True => constructor was already called - logical, public :: labort_marbl = .false. ! True => driver should abort GCM - logical, public :: lwarning = .false. ! True => warnings are present - type(marbl_log_output_options_type) :: OutputOptions - type(marbl_status_log_entry_type), pointer :: FullLog - type(marbl_status_log_entry_type), pointer :: LastEntry - contains - procedure, public :: construct => marbl_log_constructor - procedure, public :: log_header => marbl_log_header - procedure, public :: log_error => marbl_log_error - procedure, public :: log_warning => marbl_log_warning - procedure, public :: log_noerror => marbl_log_noerror - procedure, public :: log_error_trace => marbl_log_error_trace - procedure, public :: log_warning_trace => marbl_log_warning_trace - procedure, public :: erase => marbl_log_erase - procedure, private :: append_to_log - end type marbl_log_type - - !**************************************************************************** - -contains - - !**************************************************************************** - - subroutine marbl_output_options_constructor(this, labort_on_warning, LogVerbose, LogNamelist, & - LogGeneral, LogWarning, LogError) - - class(marbl_log_output_options_type), intent(inout) :: this - logical, intent(in), optional :: labort_on_warning, LogVerbose, LogNamelist - logical, intent(in), optional :: LogGeneral, LogWarning, LogError - - if (present(labort_on_warning)) then - this%labort_on_warning = labort_on_warning - else - this%labort_on_warning = .false. - end if - - if (present(LogVerbose)) then - this%lLogVerbose = LogVerbose - else - this%lLogVerbose = .false. - end if - - if (present(LogNamelist)) then - this%lLogNamelist = LogNamelist - else - this%lLogNamelist = .true. - end if - - if (present(LogGeneral)) then - this%lLogGeneral = LogGeneral - else - this%lLogGeneral = .true. - end if - - if (present(LogWarning)) then - this%lLogWarning = LogWarning - else - this%lLogWarning = .true. - end if - - if (present(LogError)) then - this%lLogError = LogError - else - this%lLogError = .true. - end if - - end subroutine marbl_output_options_constructor - - !**************************************************************************** - - subroutine marbl_log_constructor(this) - - class(marbl_log_type), intent(inout) :: this - - if (this%lconstructed) return - this%lconstructed = .true. - nullify(this%FullLog) - nullify(this%LastEntry) - call this%OutputOptions%construct() - - end subroutine marbl_log_constructor - - !**************************************************************************** - - subroutine marbl_log_header(this, HeaderMsg, CodeLoc) - - class(marbl_log_type), intent(inout) :: this - ! StatusMsg is the message to be printed in the log; it does not need to - ! contain the name of the module or subroutine producing the log message - ! CodeLoc is the name of the subroutine that is calling StatusLog%log_noerror - character(len=*), intent(in) :: HeaderMsg, CodeLoc - - character(len=len_trim(HeaderMsg)) :: dashes - integer :: n - - do n=1, len(dashes) - dashes(n:n) = '-' - end do - call this%log_noerror('', CodeLoc) - call this%log_noerror(dashes, CodeLoc) - call this%log_noerror(HeaderMsg, CodeLoc) - call this%log_noerror(dashes, CodeLoc) - call this%log_noerror('', CodeLoc) - - end subroutine marbl_log_header - - !**************************************************************************** - - subroutine marbl_log_error(this, ErrorMsg, CodeLoc, ElemInd) - - class(marbl_log_type), intent(inout) :: this - ! ErrorMsg is the error message to be printed in the log; it does not need - ! to contain the name of the module or subroutine triggering the error - ! CodeLoc is the name of the subroutine that is calling StatusLog%log_error - character(len=*), intent(in) :: ErrorMsg, CodeLoc - integer, optional, intent(in) :: ElemInd - - character(len=marbl_log_len) :: ErrorMsg_loc ! Message text - - this%labort_marbl = .true. - - ! Only allocate memory and add entry if we want to log full namelist! - if (.not.this%OutputOptions%lLogError) then - return - end if - - write(ErrorMsg_loc, "(4A)") "MARBL ERROR (", trim(CodeLoc), "): ", & - trim(ErrorMsg) - - call this%append_to_log(ErrorMsg_loc, CodeLoc, ElemInd, lonly_master_writes=.false.) - - end subroutine marbl_log_error - - !**************************************************************************** - - subroutine marbl_log_warning(this, WarningMsg, CodeLoc, ElemInd) - - class(marbl_log_type), intent(inout) :: this - ! WarningMsg is the message to be printed in the log; it does not need to - ! contain the name of the module or subroutine producing the log message - ! CodeLoc is the name of the subroutine that is calling StatusLog%log_warning - character(len=*), intent(in) :: WarningMsg, CodeLoc - integer, optional, intent(in) :: ElemInd - - character(len=marbl_log_len) :: WarningMsg_loc ! Message text - - this%lwarning = .true. - - ! Only allocate memory and add entry if we want to log full namelist! - if (.not.this%OutputOptions%lLogWarning) then - return - end if - - write(WarningMsg_loc, "(4A)") "MARBL WARNING (", trim(CodeLoc), "): ", & - trim(WarningMsg) - - call this%append_to_log(WarningMsg_loc, CodeLoc, ElemInd, lonly_master_writes=.false.) - - end subroutine marbl_log_warning - - !**************************************************************************** - - subroutine marbl_log_noerror(this, StatusMsg, CodeLoc, ElemInd, lonly_master_writes) - - class(marbl_log_type), intent(inout) :: this - ! StatusMsg is the message to be printed in the log; it does not need to - ! contain the name of the module or subroutine producing the log message - ! CodeLoc is the name of the subroutine that is calling StatusLog%log_noerror - character(len=*), intent(in) :: StatusMsg, CodeLoc - integer, optional, intent(in) :: ElemInd - ! If lonly_master_writes is .false., then this is a message that should be - ! printed out regardless of which task produced it. By default, MARBL assumes - ! that only the master task needs to print a message - logical, optional, intent(in) :: lonly_master_writes - - ! Only allocate memory and add entry if we want to log full namelist! - if (.not.this%OutputOptions%lLogGeneral) then - return - end if - - call this%append_to_log(StatusMsg, CodeLoc, ElemInd, lonly_master_writes) - - end subroutine marbl_log_noerror - - !**************************************************************************** - - subroutine append_to_log(this, StatusMsg, CodeLoc, ElemInd, lonly_master_writes) - - class(marbl_log_type), intent(inout) :: this - ! StatusMsg is the message to be printed in the log; it does not need to - ! contain the name of the module or subroutine producing the log message - ! CodeLoc is the name of the subroutine that is calling StatusLog%log_noerror - character(len=*), intent(in) :: StatusMsg, CodeLoc - integer, optional, intent(in) :: ElemInd - ! If lonly_master_writes is .false., then this is a message that should be - ! printed out regardless of which task produced it. By default, MARBL assumes - ! that only the master task needs to print a message - logical, optional, intent(in) :: lonly_master_writes - type(marbl_status_log_entry_type), pointer :: new_entry - - allocate(new_entry) - nullify(new_entry%next) - if (present(ElemInd)) then - new_entry%ElementInd = ElemInd - else - new_entry%ElementInd = -1 - end if - new_entry%LogMessage = trim(StatusMsg) - new_entry%CodeLocation = trim(CodeLoc) - if (present(lonly_master_writes)) then - new_entry%lonly_master_writes = lonly_master_writes - else - new_entry%lonly_master_writes = .true. - end if - - if (associated(this%FullLog)) then - ! Append new entry to last entry in the log - this%LastEntry%next => new_entry - else - this%FullLog => new_entry - end if - ! Update LastEntry attribute of linked list - this%LastEntry => new_entry - - end subroutine append_to_log - - !**************************************************************************** - - subroutine marbl_log_error_trace(this, RoutineName, CodeLoc, ElemInd) - - ! This routine should only be called if another subroutine has returned and - ! StatusLog%labort_marbl = .true. - - class(marbl_log_type), intent(inout) :: this - ! RoutineName is the name of the subroutine that returned with - ! labort_marbl = .true. - ! CodeLoc is the name of the subroutine that is calling StatusLog%log_error_trace - ! - ! Log will contain a message along the lines of - ! - ! "(CodeLoc) Error reported from RoutineName" - ! - ! When the log is printed, this will provide a traceback through the sequence - ! of calls that led to the original error message. - character(len=*), intent(in) :: RoutineName, CodeLoc - integer, optional, intent(in) :: ElemInd - character(len=char_len) :: log_message - - write(log_message, "(2A)") "Error reported from ", trim(RoutineName) - call this%log_error(log_message, CodeLoc, ElemInd) - - end subroutine marbl_log_error_trace - - !**************************************************************************** - - subroutine marbl_log_warning_trace(this, RoutineName, CodeLoc, ElemInd) - - ! This routine should only be called if another subroutine has returned and - ! StatusLog%lwarning = .true. - - class(marbl_log_type), intent(inout) :: this - ! RoutineName is the name of the subroutine that returned with - ! lwarning = .true. - ! CodeLoc is the name of the subroutine that is calling StatusLog%log_warning_trace - ! - ! Log will contain a message along the lines of - ! - ! "(CodeLoc) Warning reported from RoutineName" - ! - ! When the log is printed, this will provide a traceback through the sequence - ! of calls that led to the original warning message. - character(len=*), intent(in) :: RoutineName, CodeLoc - integer, optional, intent(in) :: ElemInd - character(len=char_len) :: log_message - - write(log_message, "(2A)") "Warning reported from ", trim(RoutineName) - call this%log_warning(log_message, CodeLoc, ElemInd) - this%lwarning = .false. - - end subroutine marbl_log_warning_trace - - !**************************************************************************** - - subroutine marbl_log_erase(this) - - class(marbl_log_type), intent(inout) :: this - type(marbl_status_log_entry_type), pointer :: tmp - - do while (associated(this%FullLog)) - tmp => this%FullLog%next - deallocate(this%FullLog) - this%FullLog => tmp - end do - nullify(this%FullLog) - nullify(this%LastEntry) - - this%lwarning = .false. - - end subroutine marbl_log_erase - -end module marbl_logging From be84a761cb55b27a87981392c7913dc60b445144 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 17 Apr 2026 12:57:12 -0600 Subject: [PATCH 2/2] Remove stub/* --- stub/CMakeLists.txt | 84 ------------------------------------ stub/README.md | 13 ------ stub/ccpp_prebuild_config.py | 78 --------------------------------- stub/data.F90 | 17 -------- stub/data.meta | 14 ------ stub/stub.F90 | 35 --------------- stub/stub.meta | 45 ------------------- stub/suite_stub.xml | 9 ---- 8 files changed, 295 deletions(-) delete mode 100644 stub/CMakeLists.txt delete mode 100644 stub/README.md delete mode 100755 stub/ccpp_prebuild_config.py delete mode 100644 stub/data.F90 delete mode 100644 stub/data.meta delete mode 100644 stub/stub.F90 delete mode 100644 stub/stub.meta delete mode 100644 stub/suite_stub.xml diff --git a/stub/CMakeLists.txt b/stub/CMakeLists.txt deleted file mode 100644 index 4550036f..00000000 --- a/stub/CMakeLists.txt +++ /dev/null @@ -1,84 +0,0 @@ -#------------------------------------------------------------------------------ -cmake_minimum_required(VERSION 3.0) - -project(ccppstub - VERSION 1.0.0 - LANGUAGES Fortran) - -#------------------------------------------------------------------------------ -# Request a static build -option(BUILD_SHARED_LIBS "Build a shared library" OFF) - -#------------------------------------------------------------------------------ -# Set the sources: physics type definitions -set(TYPEDEFS $ENV{CCPP_TYPEDEFS}) -if(TYPEDEFS) - message(STATUS "Got CCPP TYPEDEFS from environment variable: ${TYPEDEFS}") -else(TYPEDEFS) - include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_TYPEDEFS.cmake) - message(STATUS "Got CCPP TYPEDEFS from cmakefile include file: ${TYPEDEFS}") -endif(TYPEDEFS) - -# Generate list of Fortran modules from the CCPP type -# definitions that need need to be installed -foreach(typedef_module ${TYPEDEFS}) - list(APPEND MODULES_F90 ${CMAKE_CURRENT_BINARY_DIR}/${typedef_module}) -endforeach() - -#------------------------------------------------------------------------------ -# Set the sources: physics schemes -set(SCHEMES $ENV{CCPP_SCHEMES}) -if(SCHEMES) - message(STATUS "Got CCPP SCHEMES from environment variable: ${SCHEMES}") -else(SCHEMES) - include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_SCHEMES.cmake) - message(STATUS "Got CCPP SCHEMES from cmakefile include file: ${SCHEMES}") -endif(SCHEMES) - -# Set the sources: physics scheme caps -set(CAPS $ENV{CCPP_CAPS}) -if(CAPS) - message(STATUS "Got CCPP CAPS from environment variable: ${CAPS}") -else(CAPS) - include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_CAPS.cmake) - message(STATUS "Got CCPP CAPS from cmakefile include file: ${CAPS}") -endif(CAPS) - -# Set the sources: physics scheme caps -set(API $ENV{CCPP_API}) -if(API) - message(STATUS "Got CCPP API from environment variable: ${API}") -else(API) - include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_API.cmake) - message(STATUS "Got CCPP API from cmakefile include file: ${API}") -endif(API) - -#------------------------------------------------------------------------------ -add_library(ccppstub STATIC ${SCHEMES} ${CAPS} ${API}) -# Generate list of Fortran modules from defined sources -foreach(source_f90 ${CAPS} ${API}) - get_filename_component(tmp_source_f90 ${source_f90} NAME) - string(REGEX REPLACE ".F90" ".mod" tmp_module_f90 ${tmp_source_f90}) - string(TOLOWER ${tmp_module_f90} module_f90) - list(APPEND MODULES_F90 ${CMAKE_CURRENT_BINARY_DIR}/${module_f90}) -endforeach() - -set_target_properties(ccppstub PROPERTIES VERSION ${PROJECT_VERSION} - SOVERSION ${PROJECT_VERSION_MAJOR}) - -# Define where to install the library -install(TARGETS ccppstub - EXPORT ccppstub-targets - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION lib -) -# Export our configuration -install(EXPORT ccppstub-targets - FILE ccppstub-config.cmake - DESTINATION lib/cmake -) -# Define where to install the C headers and Fortran modules -#install(FILES ${HEADERS_C} DESTINATION include) -install(FILES ${MODULES_F90} DESTINATION include) - diff --git a/stub/README.md b/stub/README.md deleted file mode 100644 index 19c47c25..00000000 --- a/stub/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# How to build the stub - -1. Set compiler environment as appropriate for your system -2. Run the following commands: -``` -cd stub -rm -fr build -mkdir build -../scripts/ccpp_prebuild.py --config=ccpp_prebuild_config.py --builddir=build -cd build -cmake .. 2>&1 | tee log.cmake -make 2>&1 | tee log.make -``` diff --git a/stub/ccpp_prebuild_config.py b/stub/ccpp_prebuild_config.py deleted file mode 100755 index c95a41f6..00000000 --- a/stub/ccpp_prebuild_config.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python - -# CCPP prebuild config for GFDL Finite-Volume Cubed-Sphere Model (FV3) - - -############################################################################### -# Definitions # -############################################################################### - -HOST_MODEL_IDENTIFIER = "FV3" - -# Add all files with metadata tables on the host model side and in CCPP, -# relative to basedir = top-level directory of host model. This includes -# kind and type definitions used in CCPP physics. Also add any internal -# dependencies of these files to the list. -VARIABLE_DEFINITION_FILES = [ - # actual variable definition files - '../src/ccpp_types.F90', - 'data.F90', - ] - -TYPEDEFS_NEW_METADATA = { - 'ccpp_types' : { - 'ccpp_types' : '', - 'ccpp_t' : 'ccpp_data', - }, - } - -# Add all physics scheme files relative to basedir -SCHEME_FILES = [ - 'stub.F90', - ] - -# Default build dir, relative to current working directory, -# if not specified as command-line argument -DEFAULT_BUILD_DIR = 'build' - -# Auto-generated makefile/cmakefile snippets that contain all type definitions -TYPEDEFS_MAKEFILE = '{build_dir}/CCPP_TYPEDEFS.mk' -TYPEDEFS_CMAKEFILE = '{build_dir}/CCPP_TYPEDEFS.cmake' -TYPEDEFS_SOURCEFILE = '{build_dir}/CCPP_TYPEDEFS.sh' - -# Auto-generated makefile/cmakefile snippets that contain all schemes -SCHEMES_MAKEFILE = '{build_dir}/CCPP_SCHEMES.mk' -SCHEMES_CMAKEFILE = '{build_dir}/CCPP_SCHEMES.cmake' -SCHEMES_SOURCEFILE = '{build_dir}/CCPP_SCHEMES.sh' - -# Auto-generated makefile/cmakefile snippets that contain all caps -CAPS_MAKEFILE = '{build_dir}/CCPP_CAPS.mk' -CAPS_CMAKEFILE = '{build_dir}/CCPP_CAPS.cmake' -CAPS_SOURCEFILE = '{build_dir}/CCPP_CAPS.sh' - -# Directory where to put all auto-generated physics caps -CAPS_DIR = '{build_dir}' - -# Directory where the suite definition files are stored -SUITES_DIR = '.' - -# Optional arguments - only required for schemes that use -# optional arguments. ccpp_prebuild.py will throw an exception -# if it encounters a scheme subroutine with optional arguments -# if no entry is made here. Possible values are: 'all', 'none', -# or a list of standard_names: [ 'var1', 'var3' ]. -OPTIONAL_ARGUMENTS = {} - -# Directory where to write static API to -STATIC_API_DIR = '{build_dir}' -STATIC_API_CMAKEFILE = '{build_dir}/CCPP_API.cmake' -STATIC_API_SOURCEFILE = '{build_dir}/CCPP_API.sh' - -# Directory for writing HTML pages generated from metadata files -METADATA_HTML_OUTPUT_DIR = '{build_dir}' - -# HTML document containing the model-defined CCPP variables -HTML_VARTABLE_FILE = '{build_dir}/CCPP_VARIABLES_STUB.html' - -# LaTeX document containing the provided vs requested CCPP variables -LATEX_VARTABLE_FILE = '{build_dir}/CCPP_VARIABLES_STUB.tex' diff --git a/stub/data.F90 b/stub/data.F90 deleted file mode 100644 index d2a21c15..00000000 --- a/stub/data.F90 +++ /dev/null @@ -1,17 +0,0 @@ -module data - -!! \section arg_table_data Argument Table -!! \htmlinclude data.html -!! - - use ccpp_types, only: ccpp_t - - implicit none - - private - - public ccpp_data - - type(ccpp_t), save, target :: ccpp_data - -end module data diff --git a/stub/data.meta b/stub/data.meta deleted file mode 100644 index 55600b1a..00000000 --- a/stub/data.meta +++ /dev/null @@ -1,14 +0,0 @@ -[ccpp-table-properties] - name = data - type = module - dependencies = - -[ccpp-arg-table] - name = data - type = module -[ccpp_data] - standard_name = ccpp_t_instance - long_name = instance of derived data type ccpp_t - units = DDT - dimensions = () - type = ccpp_t diff --git a/stub/stub.F90 b/stub/stub.F90 deleted file mode 100644 index 0b392daa..00000000 --- a/stub/stub.F90 +++ /dev/null @@ -1,35 +0,0 @@ -!>\file stub.F90 -!! This file contains a stub CCPP scheme that does nothing -!! except requesting the minimum, mandatory variables. - -module stub - - implicit none - private - public :: stub_init, stub_finalize - - contains - -!! \section arg_table_stub_init Argument Table -!! \htmlinclude stub_init.html -!! - subroutine stub_init(errmsg, errflg) - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - ! Initialize CCPP error handling variables - errmsg = '' - errflg = 0 - end subroutine stub_init - -!! \section arg_table_stub_finalize Argument Table -!! \htmlinclude stub_finalize.html -!! - subroutine stub_finalize(errmsg, errflg) - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - ! Initialize CCPP error handling variables - errmsg = '' - errflg = 0 - end subroutine stub_finalize - -end module stub diff --git a/stub/stub.meta b/stub/stub.meta deleted file mode 100644 index 3cc30d59..00000000 --- a/stub/stub.meta +++ /dev/null @@ -1,45 +0,0 @@ -[ccpp-table-properties] - name = stub - type = scheme - dependencies = - -######################################################################## -[ccpp-arg-table] - name = stub_init - type = scheme -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out -[errflg] - standard_name = ccpp_error_code - long_name = error code for error handling in CCPP - units = 1 - dimensions = () - type = integer - intent = out - -######################################################################## -[ccpp-arg-table] - name = stub_finalize - type = scheme -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out -[errflg] - standard_name = ccpp_error_code - long_name = error code for error handling in CCPP - units = 1 - dimensions = () - type = integer - intent = out - diff --git a/stub/suite_stub.xml b/stub/suite_stub.xml deleted file mode 100644 index 46d25f9f..00000000 --- a/stub/suite_stub.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - stub - - -