From 8f194d01b5a886a32b005e7a6f26d0b7fabe2c01 Mon Sep 17 00:00:00 2001 From: Anna Shlyaeva Date: Fri, 13 Jan 2023 01:02:41 -0700 Subject: [PATCH] Add a pragma guard around OpenMP directives to fix a bug with GNU10.1/10.2 (#22) --- src/trans/internal/ltinv_ctlad_mod.F90 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/trans/internal/ltinv_ctlad_mod.F90 b/src/trans/internal/ltinv_ctlad_mod.F90 index 37b877cf5..3d3fd206e 100644 --- a/src/trans/internal/ltinv_ctlad_mod.F90 +++ b/src/trans/internal/ltinv_ctlad_mod.F90 @@ -98,7 +98,10 @@ SUBROUTINE LTINV_CTLAD(KF_OUT_LT,KF_UV,KF_SCALARS,KF_SCDERS,& CALL GSTATS(104,0) CALL GSTATS(1648,0) IF(KF_OUT_LT > 0) THEN +! Bug in gcc <= 10.2, see https://github.com/ecmwf-ifs/ectrans/issues/20 +#if !(defined(__GFORTRAN__) && __GNUC__ == 10 && __GNUC_MINOR__ <= 2) !$OMP PARALLEL DO SCHEDULE(DYNAMIC,1) PRIVATE(JM,IM) +#endif DO JM=1,D%NUMP IM = D%MYMS(JM) CALL LTINVAD(IM,JM,KF_OUT_LT,KF_UV,KF_SCALARS,KF_SCDERS,ILEI2,IDIM1,& @@ -106,7 +109,9 @@ SUBROUTINE LTINV_CTLAD(KF_OUT_LT,KF_UV,KF_SCALARS,KF_SCDERS,& & PSPSC3A,PSPSC3B,PSPSC2 , & & KFLDPTRUV,KFLDPTRSC,FSPGL_PROC) ENDDO +#if !(defined(__GFORTRAN__) && __GNUC__ == 10 && __GNUC_MINOR__ <= 2) !$OMP END PARALLEL DO +#endif ENDIF CALL GSTATS(1648,1)