diff --git a/src/fiat/oml/oml_mod.F90 b/src/fiat/oml/oml_mod.F90 index 92ef3460..1938ae14 100644 --- a/src/fiat/oml/oml_mod.F90 +++ b/src/fiat/oml/oml_mod.F90 @@ -102,6 +102,9 @@ MODULE OML_MOD !:: OML_GET_MAX_THREADS() is now an alias to OML_MAX_THREADS() !:: OML_INIT()'s initialization of N_OML_MAX_THREADS only done if OUTSIDE the parallel region -- otherwise task aborted +!**FV/04-Mar-2026 +!-- Remove mention of IFS routine in OML_INCR_COUNTER and add optional KERR argument for external error handling. + IMPLICIT NONE SAVE @@ -264,7 +267,7 @@ END FUNCTION OML_TEST_EVENT SUBROUTINE OML_WAIT_EVENT(K,MYEVENT) INTEGER(KIND=JPIM),INTENT(IN) :: K -INTEGER(KIND=JPIM),INTENT(INOUT),OPTIONAL :: MYEVENT +INTEGER(KIND=JPIM),INTENT(IN),OPTIONAL :: MYEVENT INTEGER(KIND=JPIM) :: ITMP IF (PRESENT(MYEVENT)) THEN DO @@ -305,20 +308,23 @@ SUBROUTINE OML_INCR_EVENT(K,MYEVENT) !$OMP FLUSH END SUBROUTINE OML_INCR_EVENT -SUBROUTINE OML_INCR_COUNTER(K,KMAX) +SUBROUTINE OML_INCR_COUNTER(K,KMAX,KERR) INTEGER(KIND=JPIM),INTENT(INOUT) :: K INTEGER(KIND=JPIM),INTENT(IN) :: KMAX +INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KERR +INTEGER(KIND=JPIM) :: IERR ! Increment by 1 K=K+1 ! Security check +IERR=0 IF (K > KMAX) THEN - WRITE(NULERR,'("OML_INCR_COUNTER: ILOCK > SIZE(KLOCK), ILOCK=",I0," SIZE(KLOCK)=",I0)') K,KMAX - CALL ABOR1('PLEASE INCREASE JP_LOCKS IN CALL_SL_AD') - RETURN + IERR=1 + WRITE(NULERR,'("OML_INCR_COUNTER: ILOCK > SIZE(KLOCK), ILOCK=",I0," SIZE(KLOCK)=",I0)') K,KMAX + IF (.NOT. PRESENT(KERR)) CALL ABOR1('OML_INCR_COUNTER: PLEASE INCREASE LOCKS ARRAY DIMENSION.') ENDIF +IF(PRESENT(KERR)) KERR=IERR END SUBROUTINE OML_INCR_COUNTER - FUNCTION OML_MY_THREAD() INTEGER(KIND=JPIM) :: OML_MY_THREAD !$ INTEGER(KIND=JPIM) :: OMP_GET_THREAD_NUM