@@ -102,6 +102,9 @@ MODULE OML_MOD
102102! :: OML_GET_MAX_THREADS() is now an alias to OML_MAX_THREADS()
103103! :: OML_INIT()'s initialization of N_OML_MAX_THREADS only done if OUTSIDE the parallel region -- otherwise task aborted
104104
105+ ! **FV/04-Mar-2026
106+ !- - Remove mention of IFS routine in OML_INCR_COUNTER and add optional KERR argument for external error handling.
107+
105108IMPLICIT NONE
106109
107110SAVE
@@ -264,7 +267,7 @@ END FUNCTION OML_TEST_EVENT
264267
265268SUBROUTINE OML_WAIT_EVENT (K ,MYEVENT )
266269INTEGER (KIND= JPIM),INTENT (IN ) :: K
267- INTEGER (KIND= JPIM),INTENT (INOUT ),OPTIONAL :: MYEVENT
270+ INTEGER (KIND= JPIM),INTENT (IN ),OPTIONAL :: MYEVENT
268271INTEGER (KIND= JPIM) :: ITMP
269272IF (PRESENT (MYEVENT)) THEN
270273 DO
@@ -305,20 +308,23 @@ SUBROUTINE OML_INCR_EVENT(K,MYEVENT)
305308! $OMP FLUSH
306309END SUBROUTINE OML_INCR_EVENT
307310
308- SUBROUTINE OML_INCR_COUNTER (K ,KMAX )
311+ SUBROUTINE OML_INCR_COUNTER (K ,KMAX , KERR )
309312INTEGER (KIND= JPIM),INTENT (INOUT ) :: K
310313INTEGER (KIND= JPIM),INTENT (IN ) :: KMAX
314+ INTEGER (KIND= JPIM),OPTIONAL ,INTENT (OUT ) :: KERR
315+ INTEGER (KIND= JPIM) :: IERR
311316! Increment by 1
312317K= K+1
313318! Security check
319+ IERR= 0
314320IF (K > KMAX) THEN
315- WRITE (NULERR, ' ("OML_INCR_COUNTER: ILOCK > SIZE(KLOCK), ILOCK=",I0," SIZE(KLOCK)=",I0) ' ) K,KMAX
316- CALL ABOR1( ' PLEASE INCREASE JP_LOCKS IN CALL_SL_AD ' )
317- RETURN
321+ IERR = 1
322+ WRITE (NULERR, ' ("OML_INCR_COUNTER: ILOCK > SIZE(KLOCK), ILOCK=",I0," SIZE(KLOCK)=",I0) ' ) K,KMAX
323+ IF ( .NOT. PRESENT (KERR)) CALL ABOR1( ' OML_INCR_COUNTER: PLEASE INCREASE LOCKS ARRAY DIMENSION. ' )
318324ENDIF
325+ IF (PRESENT (KERR)) KERR= IERR
319326END SUBROUTINE OML_INCR_COUNTER
320327
321-
322328FUNCTION OML_MY_THREAD ()
323329INTEGER (KIND= JPIM) :: OML_MY_THREAD
324330! $ INTEGER(KIND=JPIM) :: OMP_GET_THREAD_NUM
0 commit comments