From 8cf28d8cbd8f77a989a83d4570b437af42f6e2ab Mon Sep 17 00:00:00 2001 From: Jules Kouatchou Date: Tue, 21 May 2024 14:11:00 -0400 Subject: [PATCH 1/6] Create submodules for the remaining procedures in GriddedComponentDriver.F90 --- generic3g/GriddedComponentDriver.F90 | 70 +++++++------------ .../GriddedComponentDriver/CMakeLists.txt | 5 ++ .../add_export_coupler.F90 | 15 ++++ .../add_import_coupler.F90 | 16 +++++ .../GriddedComponentDriver/get_gridcomp.F90 | 16 +++++ generic3g/GriddedComponentDriver/get_name.F90 | 23 ++++++ .../new_GriddedComponentDriver.F90 | 21 ++++++ 7 files changed, 121 insertions(+), 45 deletions(-) create mode 100644 generic3g/GriddedComponentDriver/add_export_coupler.F90 create mode 100644 generic3g/GriddedComponentDriver/add_import_coupler.F90 create mode 100644 generic3g/GriddedComponentDriver/get_gridcomp.F90 create mode 100644 generic3g/GriddedComponentDriver/get_name.F90 create mode 100644 generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 diff --git a/generic3g/GriddedComponentDriver.F90 b/generic3g/GriddedComponentDriver.F90 index 09a122cd69f3..5f282651eab7 100644 --- a/generic3g/GriddedComponentDriver.F90 +++ b/generic3g/GriddedComponentDriver.F90 @@ -103,55 +103,35 @@ module subroutine clock_advance(this, rc) integer, optional, intent(out) :: rc end subroutine clock_advance - end interface - -contains - - function new_GriddedComponentDriver(gridcomp, clock, states) result(child) - type(GriddedComponentDriver) :: child - type(ESMF_GridComp), intent(in) :: gridcomp - type(ESMF_Clock), intent(in) :: clock - type(MultiState), intent(in) :: states - - child%gridcomp = gridcomp - child%clock = clock - child%states = states - - end function new_GriddedComponentDriver - - - function get_gridcomp(this) result(gridcomp) - use esmf, only: ESMF_GridComp - type(ESMF_GridComp) :: gridcomp - class(GriddedComponentDriver), intent(in) :: this - gridcomp = this%gridcomp - end function get_gridcomp - - function get_name(this, rc) result(name) - character(:), allocatable :: name - class(GriddedComponentDriver), intent(in) :: this - integer, optional, intent(out) :: rc - - integer :: status - character(len=ESMF_MAXSTR) :: buffer + module function new_GriddedComponentDriver(gridcomp, clock, states) result(child) + type(GriddedComponentDriver) :: child + type(ESMF_GridComp), intent(in) :: gridcomp + type(ESMF_Clock), intent(in) :: clock + type(MultiState), intent(in) :: states + end function new_GriddedComponentDriver - call ESMF_GridCompGet(this%gridcomp, name=buffer, _RC) - name = trim(buffer) + module function get_gridcomp(this) result(gridcomp) + use esmf, only: ESMF_GridComp + type(ESMF_GridComp) :: gridcomp + class(GriddedComponentDriver), intent(in) :: this + end function get_gridcomp - _RETURN(ESMF_SUCCESS) - end function get_name + module function get_name(this, rc) result(name) + character(:), allocatable :: name + class(GriddedComponentDriver), intent(in) :: this + integer, optional, intent(out) :: rc + end function get_name - subroutine add_export_coupler(this, driver) - class(GriddedComponentDriver), intent(inout) :: this - type(GriddedComponentDriver), intent(in) :: driver - call this%export_couplers%push_back(driver) - end subroutine add_export_coupler + module subroutine add_export_coupler(this, driver) + class(GriddedComponentDriver), intent(inout) :: this + type(GriddedComponentDriver), intent(in) :: driver + end subroutine add_export_coupler - subroutine add_import_coupler(this, driver) - class(GriddedComponentDriver), intent(inout) :: this - type(GriddedComponentDriver), intent(in) :: driver - call this%import_couplers%push_back(driver) - end subroutine add_import_coupler + module subroutine add_import_coupler(this, driver) + class(GriddedComponentDriver), intent(inout) :: this + type(GriddedComponentDriver), intent(in) :: driver + end subroutine add_import_coupler + end interface end module mapl3g_GriddedComponentDriver diff --git a/generic3g/GriddedComponentDriver/CMakeLists.txt b/generic3g/GriddedComponentDriver/CMakeLists.txt index 5ab2d7d93559..6119463dd79a 100644 --- a/generic3g/GriddedComponentDriver/CMakeLists.txt +++ b/generic3g/GriddedComponentDriver/CMakeLists.txt @@ -9,5 +9,10 @@ target_sources(MAPL.generic3g PRIVATE run_export_couplers.F90 run_import_couplers.F90 clock_advance.F90 + new_GriddedComponentDriver.F90 + get_gridcomp.F90 + get_name.F90 + add_export_coupler.F90 + add_import_coupler.F90 ) diff --git a/generic3g/GriddedComponentDriver/add_export_coupler.F90 b/generic3g/GriddedComponentDriver/add_export_coupler.F90 new file mode 100644 index 000000000000..bae47efe4986 --- /dev/null +++ b/generic3g/GriddedComponentDriver/add_export_coupler.F90 @@ -0,0 +1,15 @@ +#include "MAPL_Generic.h" + +submodule (mapl3g_GriddedComponentDriver) add_export_coupler_smod + + implicit none + +contains + + module subroutine add_export_coupler(this, driver) + class(GriddedComponentDriver), intent(inout) :: this + type(GriddedComponentDriver), intent(in) :: driver + call this%export_couplers%push_back(driver) + end subroutine add_export_coupler + +end submodule add_export_coupler_smod diff --git a/generic3g/GriddedComponentDriver/add_import_coupler.F90 b/generic3g/GriddedComponentDriver/add_import_coupler.F90 new file mode 100644 index 000000000000..960172dde063 --- /dev/null +++ b/generic3g/GriddedComponentDriver/add_import_coupler.F90 @@ -0,0 +1,16 @@ +#include "MAPL_Generic.h" + +submodule (mapl3g_GriddedComponentDriver) add_import_coupler_smod + + implicit none + +contains + + module subroutine add_import_coupler(this, driver) + class(GriddedComponentDriver), intent(inout) :: this + type(GriddedComponentDriver), intent(in) :: driver + call this%import_couplers%push_back(driver) + end subroutine add_import_coupler + + +end submodule add_import_coupler_smod diff --git a/generic3g/GriddedComponentDriver/get_gridcomp.F90 b/generic3g/GriddedComponentDriver/get_gridcomp.F90 new file mode 100644 index 000000000000..fbf9f384fd98 --- /dev/null +++ b/generic3g/GriddedComponentDriver/get_gridcomp.F90 @@ -0,0 +1,16 @@ +#include "MAPL_Generic.h" + +submodule (mapl3g_GriddedComponentDriver) get_gridcomp_smod + + implicit none + +contains + + module function get_gridcomp(this) result(gridcomp) + use esmf, only: ESMF_GridComp + type(ESMF_GridComp) :: gridcomp + class(GriddedComponentDriver), intent(in) :: this + gridcomp = this%gridcomp + end function get_gridcomp + +end submodule get_gridcomp_smod diff --git a/generic3g/GriddedComponentDriver/get_name.F90 b/generic3g/GriddedComponentDriver/get_name.F90 new file mode 100644 index 000000000000..d38efa538e12 --- /dev/null +++ b/generic3g/GriddedComponentDriver/get_name.F90 @@ -0,0 +1,23 @@ +#include "MAPL_Generic.h" + +submodule (mapl3g_GriddedComponentDriver) get_name_smod + + implicit none + +contains + + module function get_name(this, rc) result(name) + character(:), allocatable :: name + class(GriddedComponentDriver), intent(in) :: this + integer, optional, intent(out) :: rc + + integer :: status + character(len=ESMF_MAXSTR) :: buffer + + call ESMF_GridCompGet(this%gridcomp, name=buffer, _RC) + name = trim(buffer) + + _RETURN(ESMF_SUCCESS) + end function get_name + +end submodule get_name_smod diff --git a/generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 b/generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 new file mode 100644 index 000000000000..fbc71caf40a5 --- /dev/null +++ b/generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 @@ -0,0 +1,21 @@ +#include "MAPL_Generic.h" + +submodule (mapl3g_GriddedComponentDriver) new_GriddedComponentDriver_smod + + implicit none + +contains + + module function new_GriddedComponentDriver(gridcomp, clock, states) result(child) + type(GriddedComponentDriver) :: child + type(ESMF_GridComp), intent(in) :: gridcomp + type(ESMF_Clock), intent(in) :: clock + type(MultiState), intent(in) :: states + + child%gridcomp = gridcomp + child%clock = clock + child%states = states + + end function new_GriddedComponentDriver + +end submodule new_GriddedComponentDriver_smod From 47d482b52b14792a0d87be1a3b56a2b16671cf8e Mon Sep 17 00:00:00 2001 From: Tom Clune Date: Tue, 21 May 2024 16:32:57 -0400 Subject: [PATCH 2/6] Update generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 --- generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 b/generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 index fbc71caf40a5..409f9490155a 100644 --- a/generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 +++ b/generic3g/GriddedComponentDriver/new_GriddedComponentDriver.F90 @@ -1,7 +1,6 @@ #include "MAPL_Generic.h" submodule (mapl3g_GriddedComponentDriver) new_GriddedComponentDriver_smod - implicit none contains From b9d5cc379f5f427adb7fb536e3c8ff3f77493c3e Mon Sep 17 00:00:00 2001 From: Tom Clune Date: Tue, 21 May 2024 16:33:11 -0400 Subject: [PATCH 3/6] Update generic3g/GriddedComponentDriver/get_name.F90 --- generic3g/GriddedComponentDriver/get_name.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/generic3g/GriddedComponentDriver/get_name.F90 b/generic3g/GriddedComponentDriver/get_name.F90 index d38efa538e12..c7765abf1241 100644 --- a/generic3g/GriddedComponentDriver/get_name.F90 +++ b/generic3g/GriddedComponentDriver/get_name.F90 @@ -1,7 +1,6 @@ #include "MAPL_Generic.h" submodule (mapl3g_GriddedComponentDriver) get_name_smod - implicit none contains From 829f11b405b0c8481f01443cd206306a2592c5aa Mon Sep 17 00:00:00 2001 From: Tom Clune Date: Tue, 21 May 2024 16:33:24 -0400 Subject: [PATCH 4/6] Update generic3g/GriddedComponentDriver/get_gridcomp.F90 --- generic3g/GriddedComponentDriver/get_gridcomp.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/generic3g/GriddedComponentDriver/get_gridcomp.F90 b/generic3g/GriddedComponentDriver/get_gridcomp.F90 index fbf9f384fd98..4777a3f8bd06 100644 --- a/generic3g/GriddedComponentDriver/get_gridcomp.F90 +++ b/generic3g/GriddedComponentDriver/get_gridcomp.F90 @@ -1,7 +1,6 @@ #include "MAPL_Generic.h" submodule (mapl3g_GriddedComponentDriver) get_gridcomp_smod - implicit none contains From be51c5e9f4718bdc83f99d1df7fe118c3287375d Mon Sep 17 00:00:00 2001 From: Tom Clune Date: Tue, 21 May 2024 16:33:39 -0400 Subject: [PATCH 5/6] Update generic3g/GriddedComponentDriver/add_import_coupler.F90 --- generic3g/GriddedComponentDriver/add_import_coupler.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/generic3g/GriddedComponentDriver/add_import_coupler.F90 b/generic3g/GriddedComponentDriver/add_import_coupler.F90 index 960172dde063..3b3630a876c5 100644 --- a/generic3g/GriddedComponentDriver/add_import_coupler.F90 +++ b/generic3g/GriddedComponentDriver/add_import_coupler.F90 @@ -1,7 +1,6 @@ #include "MAPL_Generic.h" submodule (mapl3g_GriddedComponentDriver) add_import_coupler_smod - implicit none contains From 19d70cb8e422fc28e8695e94f46be06391bb6ada Mon Sep 17 00:00:00 2001 From: Tom Clune Date: Tue, 21 May 2024 16:33:53 -0400 Subject: [PATCH 6/6] Update generic3g/GriddedComponentDriver/add_export_coupler.F90 --- generic3g/GriddedComponentDriver/add_export_coupler.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/generic3g/GriddedComponentDriver/add_export_coupler.F90 b/generic3g/GriddedComponentDriver/add_export_coupler.F90 index bae47efe4986..792ea62efa3d 100644 --- a/generic3g/GriddedComponentDriver/add_export_coupler.F90 +++ b/generic3g/GriddedComponentDriver/add_export_coupler.F90 @@ -1,7 +1,6 @@ #include "MAPL_Generic.h" submodule (mapl3g_GriddedComponentDriver) add_export_coupler_smod - implicit none contains