From 46cfa7bdcba223d08669525a41905875bd836eac Mon Sep 17 00:00:00 2001 From: Ming Chen Date: Thu, 15 Nov 2018 17:16:24 -0700 Subject: [PATCH 1/3] Bug fix for hard coded number of processors --- external/RSL_LITE/module_dm.F | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/external/RSL_LITE/module_dm.F b/external/RSL_LITE/module_dm.F index dcf72c0cbe..c57df78437 100644 --- a/external/RSL_LITE/module_dm.F +++ b/external/RSL_LITE/module_dm.F @@ -2213,8 +2213,8 @@ SUBROUTINE get_full_obs_vector( nsta, nerrf, niobf, & INTEGER N_BUFFER(NIOBF) REAL FULL_BUFFER(NIOBF) INTEGER IFULL_BUFFER(NIOBF) - INTEGER IDISPLACEMENT(1024) ! HARD CODED MAX NUMBER OF PROCESSORS - INTEGER ICOUNT(1024) ! HARD CODED MAX NUMBER OF PROCESSORS + INTEGER, ALLOCATABLE , DIMENSION(:) :: IDISPLACEMENT + INTEGER, ALLOCATABLE , DIMENSION(:) :: ICOUNT INTEGER :: MPI_COMM_COMP ! MPI group communicator INTEGER :: NPROCS ! Number of processors @@ -2225,6 +2225,8 @@ SUBROUTINE get_full_obs_vector( nsta, nerrf, niobf, & ! Get rank of monitor processor and broadcast to others. CALL MPI_COMM_SIZE( MPI_COMM_COMP, NPROCS, IERR ) + ALLOCATE (IDISPLACEMENT(NPROCS)) + ALLOCATE (ICOUNT(NPROCS)) ! DO THE U FIELD NLOCAL_DOT = 0 From 42725b8e929ca759b865c62a71c0f5cd6f1cac06 Mon Sep 17 00:00:00 2001 From: smileMchen Date: Fri, 16 Nov 2018 08:58:11 -0700 Subject: [PATCH 2/3] Update module_dm.F --- external/RSL_LITE/module_dm.F | 2 ++ 1 file changed, 2 insertions(+) diff --git a/external/RSL_LITE/module_dm.F b/external/RSL_LITE/module_dm.F index c57df78437..84dabda229 100644 --- a/external/RSL_LITE/module_dm.F +++ b/external/RSL_LITE/module_dm.F @@ -2372,6 +2372,8 @@ SUBROUTINE get_full_obs_vector( nsta, nerrf, niobf, & END DO #endif + DEALLOCATE (IDISPLACEMENT) + DEALLOCATE (ICOUNT) END SUBROUTINE get_full_obs_vector From 4758a9827cd64acd7d95e3426e934693550bd377 Mon Sep 17 00:00:00 2001 From: smileMchen Date: Tue, 20 Nov 2018 10:57:43 -0700 Subject: [PATCH 3/3] Put deallocate of IDISPLACEMENT and ICOUNT inside of same ifdef where the variables are defined --- external/RSL_LITE/module_dm.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/RSL_LITE/module_dm.F b/external/RSL_LITE/module_dm.F index 84dabda229..2bb0367817 100644 --- a/external/RSL_LITE/module_dm.F +++ b/external/RSL_LITE/module_dm.F @@ -2371,9 +2371,9 @@ SUBROUTINE get_full_obs_vector( nsta, nerrf, niobf, & ERRF(10,IFULL_BUFFER(N)) = FULL_BUFFER(N) END DO -#endif DEALLOCATE (IDISPLACEMENT) DEALLOCATE (ICOUNT) +#endif END SUBROUTINE get_full_obs_vector