From d950247f46247676436da7ca217048786e4d2b9f Mon Sep 17 00:00:00 2001 From: rem1776 Date: Wed, 15 Mar 2023 17:29:15 -0400 Subject: [PATCH] fix bounds typo and change get_buffer to reference its argument instead of the module variable --- diag_manager/fms_diag_buffer.F90 | 5 +++-- diag_manager/fms_diag_object.F90 | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/diag_manager/fms_diag_buffer.F90 b/diag_manager/fms_diag_buffer.F90 index 4d6c91783b..37a71439bb 100644 --- a/diag_manager/fms_diag_buffer.F90 +++ b/diag_manager/fms_diag_buffer.F90 @@ -50,7 +50,8 @@ module fms_diag_buffer_mod procedure :: flush_buffer procedure :: remap_buffer procedure :: set_buffer_id - ! TODO deferred routines, will require some interfaces + ! TODO could make these 'defered' ie. declared here but defined in each child type + ! holding off cause the class(*) + polymorphism in here is probably already enough to upset the gods of compilation !procedure(allocate_buffer), deferred :: allocate_buffer !procedure, deferred :: get_buffer !procedure, deferred :: initialize_buffer @@ -64,7 +65,7 @@ module fms_diag_buffer_mod !> Scalar buffer type to extend fmsDiagBufferContainer_type type, extends(fmsDiagBuffer_class) :: buffer0d_type - class(*), allocatable :: buffer(:) !< "scalar" numberic buffer value + class(*), allocatable :: buffer(:) !< "scalar" numeric buffer value !! will only be allocated to hold 1 value class(*), allocatable :: counter(:) !< (x,y,z, time-of-day) used in the time averaging functions contains diff --git a/diag_manager/fms_diag_object.F90 b/diag_manager/fms_diag_object.F90 index 79e899769e..57929a5388 100644 --- a/diag_manager/fms_diag_object.F90 +++ b/diag_manager/fms_diag_object.F90 @@ -712,9 +712,9 @@ function get_diag_buffer(this, bufferid) & class(fmsDiagObject_type), intent(in) :: this integer, intent(in) :: bufferid class(fmsDiagBuffer_class),allocatable:: rslt - if( (bufferid .gt. UBOUND(this%FMS_diag_buffers, 1)) .or. (bufferid .lt. UBOUND(this%FMS_diag_buffers, 1))) & + if( (bufferid .gt. UBOUND(this%FMS_diag_buffers, 1)) .or. (bufferid .lt. LBOUND(this%FMS_diag_buffers, 1))) & call mpp_error(FATAL, 'get_diag_bufer: invalid bufferid given') - rslt = fms_diag_object%FMS_diag_buffers(bufferid)%diag_buffer_obj + rslt = this%FMS_diag_buffers(bufferid)%diag_buffer_obj end function #endif